sqlalchemy_seed是使用sqlalchmy的简单数据播种器。
sqlalchemy_seed的Python项目详细描述
sqlalchemy_seed是一个种子库,它使用sqlalchemy向数据库提供初始数据。
sqlalchemy\u seed类似于Django fixtures。
安装
pip install sqlalchemy_seed
添加种子
/myapp __init__.py models.py /fixtures accounts.yaml
模型文件。
# -*- coding: utf-8 -*-fromsqlalchemyimportcreate_enginefromsqlalchemy.excimportOperationalErrorfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportscoped_session,sessionmaker,relationshipengine=create_engine('sqlite://',convert_unicode=True)Base=declarative_base()Base.metadata.bind=engineSession=sessionmaker(autocommit=False,autoflush=False,bind=engine)session=scoped_session(Session)classAccount(Base):__tablename__='accounts'id=Column(Integer,primary_key=True)first_name=Column(String(100),nullable=False)last_name=Column(String(100),nullable=False)age=Column(Integer(),nullable=True)
种子代码。
# -*- coding: utf-8 -*-fromsqlalchemy_seedimport(create_table,drop_table,load_fixtures,load_fixture_files,)frommyapp.modelsimportBase,sessiondefmain():path='/path/to/fixtures'fixtures=load_fixture_files(path,['accounts.yaml'])load_fixtures(session,fixtures)if__name__=='__main__':main()
种子文件。
- model: myapp.models.Account id: 1 fields: first_name: John last_name: Lennon age: 20 - model: myapp.models.Account id: 2 fields: first_name: Paul last_name: McCartney age: 21
许可证
新的BSD许可证。