欢迎访问宙启技术站
智能推送

使用flask_admin.contrib.sqla进行数据库迁移

发布时间:2023-12-27 13:28:42

要使用flask_admin.contrib.sqla进行数据库迁移,首先需要确保已经安装了必要的依赖包。可以在终端中运行以下命令安装依赖包:

pip install Flask-Admin Flask-Migrate Flask-SQLAlchemy

接下来,我们需要创建一个Flask应用程序,并设置好数据库连接。可以参考以下示例代码:

from flask import Flask
from flask_admin.contrib.sqla import ModelView
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SECRET_KEY'] = 'secret_key'

db = SQLAlchemy(app)
migrate = Migrate(app, db)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username


class UserView(ModelView):
    column_searchable_list = ['username', 'email']


admin = flask_admin.Admin(app, name='Example', template_mode='bootstrap3')
admin.add_view(UserView(User, db.session))


if __name__ == '__main__':
    app.run()

在上述示例代码中,我们创建了一个简单的Flask应用程序,并连接了一个SQLite数据库。然后,我们定义了一个User模型,并创建了一个UserView,用于在Admin界面上显示User模型的数据。最后,我们使用flask_admin库来创建一个Admin对象,并将UserView添加到Admin对象中。

要进行数据库迁移,首先需要在终端中切换到项目的根目录,并运行以下命令:

flask db init

这将在项目的根目录中创建一个名为migrations的文件夹,用于存储数据库迁移相关的文件。

接下来,需要生成一个初始的数据库迁移脚本。可以运行以下命令:

flask db migrate -m 'initial migration'

这将生成一个名为xxxx_initial_migration.py的迁移脚本文件,其中xxxx是一个时间戳。在这个迁移脚本文件中,我们可以定义需要对数据库进行的修改。

完成以上步骤后,可以运行以下命令来应用数据库迁移:

flask db upgrade

这将根据迁移脚本文件中定义的修改来更新数据库结构。

通过以上步骤,我们就实现了使用flask_admin.contrib.sqla进行数据库迁移的操作。使用flask_admin.contrib.sqla可以方便地管理数据库模型和数据,并进行数据库迁移操作。