Flask SQLAlchemyとSQLiteで構築したサイトがあり、MySQLに切り替える必要があります。私は自分自身を、データベースを移行して、それはMySQLの下で実行しているが、FlaskでSQLiteからMySQLに切り替えるSQLAlchemy
- MySQLデータベースに接続する方法を見つけ出すことはできません(つまり、
SQLALCHEMY_DATABASE_URI
はどうあるべきか)と、もしあれば - アム不明確私の既存のSQLAlchemy SQLiteコードは、MySQLで動作します。
私は、(1)はかなり単純で、私のMySQLデータベースツールで使用する接続ダイアログの内容を適切にフォーマットされたURLにマップする方法を示していると思います。しかし、私は(2)、私はSQLAlchemyのは、データベースURIへの適切な変更以外の変更を加えることなくそのようsimple SQLAlchemy code such as
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()
ウォールド作業を抽象化レイヤを提供することを想定していた心配です。 MySQLでSQLAlchemyを使用するためのexamples I've foundは全く異なるAPIを使用しているようです。
データベースのURIを変更するだけで、FlaskのSQLAlchemyコードをMySQLデータベースに移行できますか?もしそうなら、(1)そのURIはどのようにするべきですか?
はい、ORMの全体のポイントはわからない、任意の違いを抽象化しています。そして確かにあなたがリンクしているそのブログは、uriが見えるべきものの完璧な例を持っていますか? –
@DanielRoseman:例えば 'create_engine'の使用は、私が見たことではありません。 – orome
しかし、これはデータベースの違いとは関係ありませんが、むしろFlaskがdb構成とスタンドアロンの方法を設定する方法です。 –