2017-03-01 126 views
-1

我是Flask堆棧中的新成員。我需要運行一些項目。我創建的virtualenv並安裝所有要求如何在Peewee中初始化數據庫?

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 myproject import create_app 
app = create_app() 

if __name__ == '__main__': 
    app.run(debug=True, port=5000, host='0.0.0.0') 

現在我想從models.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 

如何創建表格S' Peewee有類似Django的命令「python manage.py migrate」? 如何在Django中運行類似「python manage.py shell」的項目內的python shell?

+0

使用https://github.com/klen/peewee_migrate –

+0

** Anubhav阿加瓦爾**,peewee_migrate不要求上市。我需要在這個堆棧中完成它。 – maximkalga

+0

ОК,我明白了。在shell中,我從models.py導入init_db()並運行它。不需要遷移。 – maximkalga

回答