【问题标题】:whoosh search after database migration数据库迁移后的嗖嗖声搜索
【发布时间】:2016-05-08 17:03:29
【问题描述】:

我通过以下三个步骤将我的数据库从 sqlite3 迁移到 postgresql

  1. 我用

    创建了一个 sqlite 转储文件

    sqlite3 app.db .dump > app_dump.sql

  2. 我创建了一个 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()
  1. 我只使用转储文件中的插入行来填充新数据库。

这很好用,但是我确实想在我的用户表中进行快速搜索。

我的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


【解决方案1】:

默认情况下,flask_whooshalchemy 在 sqlalchemy 会话提交时索引一条记录。因此,如果您想索引所有非索引数据,您可以尝试我的 fork,称为 flask_whooshalchemyplus,请参阅手动索引介绍。

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多