1 はじめに
# テーブルとフィールドが変更され、レコードが作成され、それらは自動的にデータベースに同期されます -- 「django はこの操作をサポートします。 #
ネイティブ sqlalchemy はテーブルの変更をサポートしません。 # flask-merge は django と同様の python manage.py makemigrations
を実装できます# python manage.py merge #real synchronization をデータベースに
記録します
2. 準備 -
flask、flask-script、flask-merge をインストールすると、最新のものはインストールされません。バージョンの競合が発生します。
pip insatll flask==2.2.2
pip install flask-script==2.0.3
pip install flask-migrate==2.7.0
2.1 manage.py、つまり新しく作成したプロジェクトの app.py 内
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
manager = Manager(app)
# flask-script可以自定义命令---》
# flask-migrate本质是它借助于flask-script增加了几个命令来对数据库表和字段进行管理
Migrate(app, db) # sqlalchemy的db对象
manager.add_command('db', MigrateCommand)
manager.run() # 以后使用python manage.py runserver 启动项目
2.2 とても重要
作成したテーブル名もアプリの__init__ページにインポートします
from .user.models import User
2.3 今後初めて実行する
python manage.py db init
# 生成一个migrations文件夹,里面以后不要动,记录迁移的编号
2.4 4以降、models.pyにテーブルを記述し、フィールドの追加、フィールドの削除、パラメータの変更を行う
5 只需要执行
python manage.py db migrate # 记录
python manage.py db upgrade # 真正的同步进去