Whoosh поиск после миграции базы данных

0

Я перенесла свою базу данных из 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. Я использовал только строки вставки в файле дампа для заполнения новой базы данных.

Это сработало хорошо, однако я хочу иметь поиск whoosh в моей таблице User.

Мой 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)

Однако поиск не работает вообще. Я боюсь, что таблица не была правильно проиндексирована? Кто-нибудь знает, как я могу это исправить? спасибо, карл

EDIT: Решил... взгляните на https://gist.github.com/davb5/21fbffd7a7990f5e066c

  • 0
    python manage.py db init создает только папку migrations и некоторые базовые сценарии, а не выполняет настоящую работу.
  • 0
    И я предполагаю, что вы можете добавить новые данные в базу данных, используя SQLAlchemy .
Теги:
database
flask
whoosh

1 ответ

0

По умолчанию flask_whooshalchemy индексирует запись, когда выполняется сеанс sqlalchemy. Поэтому, если вы хотите проиндексировать все неиндексированные данные, вы можете попробовать свою вилку, которая называется flask_whooshalchemyplus, см. Введение в ручную индексацию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню