2015-12-15 31 views
1

我是新來的燒瓶,請問如何將查詢從模型遷移到我在配置文件中提到的數據庫。如何將模型遷移到Flask上的Mysql數據庫

我的樹結構,

search 
|-- application 
| |-- config 
| | |-- config.py 
| | |-- __init__.py 
| |-- controllers 
| | |-- __init__.py 
| | |-- routes.py 
| |-- __init__.py 
| |-- models 
| | |-- __init__.py 
| | |-- model.py 
| | |-- robot.py 
| |-- static 
| | |-- css 
| | | |-- bootstrap.css 
| | | |-- bootstrap.min.css 
| | |-- img 
| | | |-- aqua_dayDown.gif 
| | `-- js 
| |  |-- CalendarControl.js 
| |  |-- chosen.jquery.min.js 
| `-- templates 
|  |-- home.html 
|  |-- index.html 
|-- manage.py 
`-- server.py 

和我config.py包含

dbhost = 'localhost' 
dbuser = 'root' 
dbpass = 'password' 
dbname = 'flask_test' 

DB_URI = 'mysql://' + dbuser + ':' + dbpass + '@' + dbhost + '/' +dbname 

在routes.py文件包含插入查詢像

Users.query.filter_by(id = 1).update({"name":new_name}) 
    db.session.commit() 

,在我的模型.py文件包含。

from application import app 
from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
from sqlalchemy import Table, Column, func, Integer, String, Date, Float, Text 
from application.config import config 

# DB class 
app.config['SQLALCHEMY_DATABASE_URI'] = config.DB_URI 
db = SQLAlchemy(app) 

# DB classess 
class Users(db.Model): 
    __tablename__ = 'users' 

    id = db.Column('id', Integer, primary_key=True) 
    userid = db.Column('userid', String(100)) 
    name = db.Column('name', String(30)) 
    email = db.Column('email', String(30), unique=True) 
    password = db.Column('password', String(100)) 
    user_type = db.Column('user_type', String(30)) 
    created = db.Column('created', String(100)) 

    def __init__(self, userid=None, name=None, email=None, password=None, user_type=None, created=None): 
     self.userid = userid 
     self.name = name 
     self.email = email 
     self.password = password 
     self.user_type = user_type 
     self.created = created 

    def __repr__(self): 
     return Users(self.userid,self.name,self.email,self.password,self.user_type,self.created) 

我已經安裝了瓶也遷移,從這個鏈接https://flask-migrate.readthedocs.org/en/latest/,我試過manage.py文件只包含這些代碼。

請問如何做遷移

在此先感謝。

回答

0

您必須將您的db命令註冊到manage.py

from flask.ext.migrate import MigrateCommand 

manager.add_command('db', MigrateCommand) 

managerFlask-Script經理,你可能已經在你的manage.py

+0

是的,它有但是在遷移時有一個表插入了alembic_version。用戶表未註冊 –

+0

您必須將應用程序中某處的模型文件導入。這是因爲應用程序在生成遷移時不知道「用戶」。 – iurisilvio

+0

你可以請分享任何這樣的示例程序 –

相關問題