flask迁移生成两个表,初始化
python manage.py db init
结果出来的就是
Creating directory /home/mac126/Desktop/13/test3-1/migrations ... done Creating directory /home/mac126/Desktop/13/test3-1/migrations/versions ... done Generating /home/mac126/Desktop/13/test3-1/migrations/env.py ... done Generating /home/mac126/Desktop/13/test3-1/migrations/README ... done Generating /home/mac126/Desktop/13/test3-1/migrations/alembic.ini ... done Generating /home/mac126/Desktop/13/test3-1/migrations/script.py.mako ... done Please edit configuration/connection/logging settings in '/home/mac126/Desktop/13/test3-1/migrations/alembic.ini' before proceeding.
本以为是个错误,其实这个只要你初始化python manage.py db init就会出现这个,这个不是错误。既然不是错误为什么创建的两个表没有成功呢,运行也可以的,就是没有表,继续看
进行python manage.py db migrate迁移 INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.env] No changes in schema detected.
no changes in schema detected自然不会生成新表,百度了一下,方案很多木有解决,抱着尝试的态度,最终解决了,废话不多说,看源码:
#创建manage.py文件 from flask_migrate import MigrateCommand from flask_script import Manager from app import create_app app = create_app('developConfig') manage=Manager(app) manage.add_command('db',MigrateCommand) #迁移的时候一定要加,不加报错manage.py: error: invalid choice: 'db' (choose from 'shell', 'runserver') if __name__ == '__main__': manage.run() # 如果想要使用session ,必须要给定一个SECRET_KEY # 因为flask没有对session进行处理,所以,我们需要自己去处理session,也就是将session进行持久化 ,默认存储在系统的内存中 # 那么我们要将它放到制定的地方 redis # 需要一个配置信息 SESSION_TYPE = 'redis' # Session(app) # 'mysql+pymysql://root:123456@localhost:3306/database' # 使用flask-sqlalchemy 需要两个配置信息 # SQLALCHEMY_DATABASE_URI # 自己去看警告信息 # ext.py 里面主要放第三方扩展包的初始化信息 # settings.py 所有的配置信息 ,配置文件 # db.createall() # db.drop_all() # db.session.add(对象) # db.session.commit() # 数据库的事务: # 原子性:不可再分 一致性:保持一致 隔离性:不能受到外界影响 持久性:做长久保存 # http://www.cnblogs.com/fjdingsd/p/5273008.html
#创建__init__.py文件 from</