Передача данных между базами данных sqlite - PullRequest
3 голосов
/ 02 июня 2009

Я разрабатываю приложение в Django, используя sqlite для windows. Будет ли эта база данных работать на машине с Linux? Если нет, то как мне реплицировать данные на новой базе данных в Linux (создание сценариев - один из способов)?

Ответы [ 2 ]

9 голосов
/ 21 июня 2009

Как пишет Роберт, файлы SQLite должны работать на любой платформе. Если вы решите переключиться на MySQL или PostgreSql, вы можете запустить следующую (стандартную) команду, чтобы сохранить вашу базу данных на компьютере с Windows:

manage.py dumpdata <app1> <app1> > mydbdump.json

, а затем настройте файл settings.py на компьютере Linux для базы данных MySQL или PostgreSql и выполните команду:

manage.py syncdb
manage.py loaddata ./mydbdump.json

Я несколько раз успешно делал это, чтобы переключиться с MySQL на SQLite, он работал нормально.

Просто для справки, вы можете опустить листинг в команде dumpdata, чтобы выгрузить данные для всех установленных приложений, но загрузить их обратно будет невозможно. Полный дамп будет содержать некоторые внутренние записи Django, такие как содержимое по умолчанию типы и аутентификация пользователя, которые также создаются командой syncdb. Таким образом, вы получаете ошибки типа

IntegrityError: столбцы app_label, модель не являются уникальными

Перечислите конкретные приложения, которые вы хотите сбросить и загрузить, и это будет работать.

8 голосов
/ 02 июня 2009

SQLite совместим с платформами Windows и Linux.

Формат файла базы данных кросс-платформенный - вы можете свободно копировать база данных между 32-битной и 64-битной системы или между Big-Endian и Архитектура с прямым порядком байтов. Эти особенности делают SQLite популярным выбором как формат файла приложения.

Источник: http://sqlite.org/about.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...