flask -sqlalchemy migrate

改upgrade這段很重要 不然會刪除所有舊資料

Steven Wang
Oct 19, 2022

from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)

app.config[“SQLALCHEMY_DATABASE_URI”]=”mysql+pymysql://ka666wang:200010@127.0.0.1/DevDb” #MySQL連線
db = SQLAlchemy(app)
migrate = Migrate(app, db)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True, nullable=False, autoincrement=True)
email = db.Column(db.String(128), nullable=False)
password = db.Column(db.String(128), nullable=False)

命令列
flask db init #產生migrations folder

flask db migrate -m “message” #產生版本別,可進入版本內修改upgarde() downgrade()

變更Class改變資料庫欄位結構需再一次flask db migrate -m “message”

!!重要!!每次都要改好歐

進入版本別 修改upgarde() 升級至新資料庫

def upgrade():
op.drop_table(“user”)
op.create_table(
“user”,
sa.Cloumn(“id”,sa.Integer,nullable=False,autoincrement=True),
sa.Column(“email”,sa.String(length=128),nullable=False),
sa.Column(“password,sa.String(length=128),nullable=False),
sa.PrimaryKeyConstraint(“id”),)

downgrade() 回復原資料庫

def downgrade():
op.drop_table(“user”)
op.create_table(
“user”,
sa.Column(“email”,sa.String(length=128),nullable=False),
sa.Column(“password,sa.String(length=128),nullable=False),
sa.PrimaryKeyConstraint(“email”),)

命令列
flask db upgrade #產生資料庫

flask db downgrade #產生資料庫

DELETE flask-migration

--

--

Steven Wang
Steven Wang

No responses yet