-1
私はフラスコのスタックで新しいです。私はいくつかのプロジェクトを実行する必要があります。私はvirtualenvのを作成し、インストールされているすべての要件:Peeweeでinit dbを使う方法は?
from myproject import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True, port=5000, host='0.0.0.0')
は、今私はmodels.pyからDBを初期化したい:
Flask==0.10.1
Flask-Login==0.3.1
Flask-Testing==0.4.2
Flask-WTF==0.12
Jinja2==2.8
MarkupSafe==0.23
WTForms==2.0.2
Werkzeug==0.10.4
argparse==1.2.1
flask-peewee==0.6.6
funcsigs==0.4
itsdangerous==0.24
mock==1.3.0
nose==1.3.7
pbr==1.8.0
peewee==2.6.4
psycopg2==2.6.1
requests==2.7.0
six==1.9.0
wsgiref==0.1.2
wtf-peewee==0.2.3
をまた、私はプロジェクトを開始runserver.pyスクリプトを持っています:
from peewee import Model, CharField, IntegerField, DateTimeField, DecimalField, TextField, datetime as peewee_datetime
from playhouse.pool import PooledPostgresqlExtDatabase
from .config import BaseConfig
db = PooledPostgresqlExtDatabase(**BaseConfig.DATABASE)
db.commit_select = True
db.autorollback = True
class BaseModel(Model):
class Meta:
database = db
def save(self, **kwds):
with db.transaction():
Model.save(self, **kwds)
class Payment(BaseModel):
class Meta:
db_table = "payments"
card_number = CharField()
amount = DecimalField()
....
def init_db():
try:
db.connect()
map(lambda l: db.drop_table(l, True), (Payment,))
print "tables dropped"
map(lambda l: db.create_table(l, True), (Payment,))
print "tables created"
except:
db.rollback()
raise
テーブルの作成方法? PeeweeはDjangoコマンド "python manage.py migrate"のようなものを持っていますか? そして、Djangoで "python manage.py shell"のようなプロジェクトの中でpythonシェルを実行するには?
使用https://github.com/klen/peewee_migrate –
** Anubhav Agarwalさん**、peewee_migrate要件に記載されていません。私はこのスタックでそれを行う必要があります。 – maximkalga
ОК、私はそれを得た。シェルの中で、models.pyからinit_db()をインポートして実行しました。移行は必要ありません。 – maximkalga