簡體   English   中英

Flask-SQLAlchemy在創建表之前創建模式

[英]Flask-SQLAlchemy creating schema before creating tables

我正在嘗試使用Flask-SQLAlchemy配置MySQL模式。 我有一個稱為testdb的架構和一些表。 我將列出一個表User 到目前為止,此代碼僅在testdb已經存在時創建所有需要的表。 有沒有一種方法可以在我連接之前檢查並創建testdb

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/testdb'
db = SQLAlchemy(app)

class User(db.Model):
    userid = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(16), unique=True, nullable=False)
    password = db.Column(db.String(16), unique=False, nullable=False)
    email = db.Column(db.String(80), unique=True, nullable=False)
    createdDate = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
    lastUpdated = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)

db.create_all()

所需命令:

CREATE SCHEMA IF NOT EXISTS `testdb` ;

我通過@hygorxaraujo解決了這個問題,請參見下面的代碼:

import sqlachemy

engine = sqlalchemy.create_engine('mysql://root:password@localhost') # connect to server
engine.execute("CREATE SCHEMA IF NOT EXISTS `testdb`;") #create db
engine.execute("USE testdb;") # select new db

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:8milerun@localhost/testdb'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False #Turn off annoying message
db = SQLAlchemy(app)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM