Найти - Пользователи
Полная версия: как в Django перенести две SQLite базы в одну MySQL базу
Начало » Django » как в Django перенести две SQLite базы в одну MySQL базу
1
gtlhbkkj
одну SQLite базу переношу по этой схеме
https://stackru.com/questions/31451711/kakov-nailuchshij-sposob-perenosa-django-db-iz-sqlite-v-mysql
а как перенести вторую SQLite базу в ту же самую MySQL базу?
чтобы в результате одна MySQL база содержала обе SQLite базы
спасибо
FishHook
Вообще не понял чего вы хотите. Давайте начнем с простого - может быть вам стоит проделать вышеописанную орперацию дважды?
gtlhbkkj
FishHook
Вообще не понял чего вы хотите. Давайте начнем с простого - может быть вам стоит проделать вышеописанную орперацию дважды?
благодарю за внимание
.
у меня есть два отдельных приложения на джанго
у каждого приложения есть своя база данных в виде SQLite файла - итого два файла (данные не пересекаются, все таблицы разные)
Собираюсь обьединить оба приложения и запустить их с единой базой данных но MySQL
.
Один SQLite файл в MySQL уже перенес по вышеуказанной схеме.
- создать MySQL
- подготовить его пустую структуру через “makemigrations”
- выгрузить дампом данные из первого файла SQLite
- загрузить дамп данных в MySQL
.
Не понимаю как мне теперь быть с переносом второй базы.
- Нужно ли мне обььединить оба файла models.py в один и сделать миграцию? (почему-то подозреваю что если их не обьединять, то после миграции второй структуры, первая структура удалится)
- а после этого таким же образом дамп данных из второго файла SQLite?
- не понимаю как работает дамп данных - очищает ли он при этом всю базу (то есть будут ли при втором дампе удалены из базы MySQL те данные, которые я уже импортировал из первого SQLite файла)
.
Спасибо
FishHook
gtlhbkkj
Вы на одном сервере с установленной СУБД MySQL можете держать хоть сколько MySQL баз.
https://dev.mysql.com/doc/refman/8.0/en/database-use.html
gtlhbkkj
вы имеете в виду что мне не обязательно обьединять оба SQLite файла в одну MYSQL базу?
никогда не имел дело практически с MySQL. Это слегка оправдывает меня.
конечно мне бы очень не хотелось делать кашу из различных приложений внутри одной базы
Если так, то спасибо вы мне очень помогли своим профессиональным советом.
FishHook
gtlhbkkj
вы имеете в виду что мне не обязательно обьединять оба SQLite файла в одну MYSQL базу?
Разумеется. MySQL - это Система Управления Базами Данных see link, а не база данных. База данных, это именованное хранилище данных, вы их можете насоздавать сколько душе угодно.
VadimK
В кратце:
https://docs.djangoproject.com/en/3.0/ref/django-admin/ - читаем про dumpdata и loaddata

1. Дампим из sqlite
2. создаем в mysql базу , скажем django_1
3. прописываем ее в конфиг джанги как основную базу
4. при помощи loaddata поднимаем дамп в mysql

Далее повторяем тоже самое для второй sqlite базы, но только под нее делаем django_2.

Потом определяемся, какую базу оставляем. И далее в нее просто “INSERT INTO django_1.table select name, name2, name from django_2.table” переносим данные.
https://dev.mysql.com/doc/refman/8.0/en/insert-select.html

Это если разговор о соединении двух одинаковых моделей. Если модели разные, еще проще, просто переносим таблицы из одной базы в другую.

Если модели с ключами, то тогда написать скрипт, который будет читать данные из одной базы и вставлять в другую.
https://docs.djangoproject.com/en/3.0/howto/custom-management-commands/
https://docs.djangoproject.com/en/3.0/topics/db/multi-db/
gtlhbkkj
FishHook
gtlhbkkjВы на одном сервере с установленной СУБД MySQL можете держать хоть сколько MySQL баз.https://dev.mysql.com/doc/refman/8.0/en/database-use.html
ясно спасибо
я как-то раньше тупо думал что MySQL - это автоматически означает одна единственная база
gtlhbkkj
хорошо, а как быть в случае, когда у меня, например три задачи в одном проекте.
1 задача - маленькая, может остаться на SQLite - база маленькая, есть запись в базу пользователем, но редко, возможно 1-5 раз в день.
2 и 3 задачи похожие но не связанные и используют разные MySQL базы и запись в базы не предполагается.
Правильно ли я понимаю документацию джанго что мне обязательно нужен рутер
https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#using-routers
или можно обойтись без рутера
https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#manually-selecting-a-database, без рутера мне проще понять.

другой вопрос - как изменять структуру выбранной базы. Раньше с одной базой было
 python manage.py makemigrations
python manage.py migrate

то же самое касается переводов каждой задачи. Раньше было для каждой задачи
 django-admin makemessages -l ru --extension html
django-admin compilemessages
а как станет сейчас? Ведь у каждой задачи своя база и свой файл с переведенным текстом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB