Flask-SQLAlchemy создание схемы перед созданием таблиц - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь настроить схему MySQL с помощью Flask-SQLAlchemy.У меня есть схема с именем testdb и некоторые таблицы.Я перечислю одну таблицу, Пользователь .Пока этот код создает все необходимые таблицы, но только тогда, когда 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` ;

1 Ответ

0 голосов
/ 24 февраля 2019

Я решил это благодаря @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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...