我有一個使用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()
沃爾德工作;但使用SQLAlchemy和MySQL的examples I've found似乎使用完全不同的API。
我可以(2)通過簡單地更改數據庫URI來遷移我的Flask SQLAlchemy代碼以使用MySQL數據庫,如果是這樣的話(1)該URI應該是什麼?
是的,一個orm的全部觀點是要抽象出任何差異,不知道爲什麼你會這麼想。當然,你鏈接到的博客有一個完美的例子,你看到的應該是什麼? – 2015-01-04 15:11:13
@DanielRoseman:例如'create_engine'的使用不是我見過的。 – orome 2015-01-04 15:14:29
但這與數據庫之間的差異無關,而是Flask設置數據庫配置與獨立方法的方式。 – 2015-01-04 15:20:10