Commutation de SQLite à MySQL avec Flacon de SQLAlchemy

J'ai un site que j'ai construit avec Flacon de SQLAlchemy et SQLite, et il faut les passer à MySQL. J'ai migré la base de données elle-même et qu'il fonctionne sous MySQL, mais

  1. Peut pas comprendre comment se connecter à la base de données MySQL (c'est ce que le SQLALCHEMY_DATABASE_URI devrait être le cas) et
  2. Suis pas clair si l'un de mes SQLAlchemy SQLite code fonctionne avec MySQL.

Je soupçonne que (1) est assez simple et juste une question d'être montré comment la carte, par exemple, le contenu de la boîte de dialogue de connexion que j'utilise dans ma base de données MySQL outil pour un bon format de l'URL. Mais je suis inquiet à propos de (2), j'avais supposé que SQLAlchemy fourni une couche d'abstraction, de sorte que simple SQLAlchemy code tel que

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

admin = User('admin', '[email protected]')

db.session.add(admin)

User.query.all()

User.query.filter_by(username='admin').first()

wold travail sans aucune modification autre qu'une modification de la base de données URI; mais la les exemples que j'ai trouvé pour l'utilisation de SQLAlchemy avec MySQL semblent utiliser un de complètement différent de l'API.

Puis-je (2) de migrer mon Flacon de SQLAlchemy code pour travailler avec une base de données MySQL, en changeant simplement la base de données URI et, si oui, (1) que dois-d'URI-être?

  • Oui, le point de l'ensemble d'un orm est de faire abstraction de toutes les différences, vous ne savez pas pourquoi vous pensez le contraire. Et sûrement que ce blog vous lien a un parfait exemple de ce que l'uri de voir qui devrait être?
  • L'utilisation de create_engine par exemple, n'est pas quelque chose que j'avais vu.
  • Mais ce n'est rien à voir avec les différences entre les bases de données, mais plutôt la façon dont Flacon ensembles de la base de données de configuration vs la version autonome de la méthode.
  • Ah, bonne nouvelle! (Je suis nouveau à la fois Fiole et SQLAlchemy.)
  • Aussi je ne suis pas clair sur la façon de construire les URI. (Par exemple, en mettant un mot de passe dans l'URI se sent bizarre pour moi; et je ne suis pas sûr de ce serveur.)
  • Pourquoi est-il bizarre? Et que dire de la documentation du format URI est source de confusion pour vous?

InformationsquelleAutor orome | 2015-01-04