База данных Kallithea sqlite для базы данных MySQL
У меня Kallithea работает на моем собственном сервере с базой данных sqlite. Я бы хотел переместить все эти данные в базу данных MySQL. По умолчанию Kallithea использует sqlite, если не указана другая база данных. Из документации Kallithea pdf https://media.readthedocs.org/pdf/kallithea/latest/kallithea.pdf они рекомендуют использовать https://github.com/shazow/sqlalchemygrate для переноса данных из базы данных в другую.
Я установил sqlalchemygrate, используя Python pip, но когда я пытаюсь мигрировать, есть части, которые я совсем не понимаю. В меню справки не указано, как использовать команду переноса. По крайней мере, я этого совсем не понимаю. Например, когда я пытаюсь ввести
grate migrate "sqlite:./kallithea.db" "mysql://kallithea@localhost/kallithea"
Я получаю сообщение об ошибке
ImportError: No module named sqlite
В меню справки сказано использовать
migrate METADATA ENGINE_FROM ENGINE_TO
Migrate schema or data from one engine to another.
И пример, как это использовать
grate migrate model.meta:metadata \
"mysql://foo:bar@localhost/baz" "sqlite:///:memory:" \
Что я действительно не понимаю, так это зачем нужны эти метаданные? И как указать файл sqlite .db для этого. И как перенести данные в новую базу данных kallithea в mysql с пользователем kallithea, у которого есть все привилегии для этой базы данных.
2 ответа
ImportError: нет модуля с именем sqlite
Вам, вероятно, нужно установить sqlite, и pip install sqlite
или похожие.
Что касается того, какие метаданные ему нужны, это относится к metadata
в контексте SQLAlchemy: http://docs.sqlalchemy.org/en/latest/core/metadata.html
Не уверен насчет Каллифеи, но пользователи RhodeCode добились больших успехов, используя проект TAPS ( https://github.com/ricardochimal/taps) для переноса своих баз данных в другой формат.