【发布时间】:2016-05-08 17:03:29
【问题描述】:
我通过以下三个步骤将我的数据库从 sqlite3 迁移到 postgresql
-
我用
创建了一个 sqlite 转储文件sqlite3 app.db .dump > app_dump.sql
-
我创建了一个 postgresql 数据库并使用我的 models.py 文件将其初始化为
python manage.py db init
manage.py 在哪里
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://appuser:777@localhost/app_db'
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
manager.run()
- 我只使用转储文件中的插入行来填充新数据库。
这很好用,但是我确实想在我的用户表中进行快速搜索。
我的models.py看起来像这样
if sys.version_info >= (3, 0):
enable_search = False
else:
enable_search = True
import flask.ext.whooshalchemy as whooshalchemy
class User(db.Model):
__searchable__ = ['username','id']
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(100), index=True)
if enable_search:
whooshalchemy.whoosh_index(app, User)
但是,搜索似乎根本不起作用。我担心该表没有被正确索引?有人知道我该如何解决这个问题吗? 谢谢 卡尔
编辑: 解决了。。。看看 https://gist.github.com/davb5/21fbffd7a7990f5e066c
【问题讨论】:
-
python manage.py db init只创建migrations文件夹和一些基本脚本,不做实际工作。 -
我猜你可以使用
SQLAlchemy向数据库添加新数据。
标签: database postgresql sqlite flask whoosh