Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » как в Django перенести две SQLite базы в одну MySQL базу [RSS Feed]

#1 Июнь 9, 2020 02:01:18

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

одну SQLite базу переношу по этой схеме
https://stackru.com/questions/31451711/kakov-nailuchshij-sposob-perenosa-django-db-iz-sqlite-v-mysql
а как перенести вторую SQLite базу в ту же самую MySQL базу?
чтобы в результате одна MySQL база содержала обе SQLite базы
спасибо

Офлайн

#2 Июнь 9, 2020 10:59:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

Вообще не понял чего вы хотите. Давайте начнем с простого - может быть вам стоит проделать вышеописанную орперацию дважды?



Офлайн

#3 Июнь 9, 2020 12:30:06

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

FishHook
Вообще не понял чего вы хотите. Давайте начнем с простого - может быть вам стоит проделать вышеописанную орперацию дважды?
благодарю за внимание
.
у меня есть два отдельных приложения на джанго
у каждого приложения есть своя база данных в виде SQLite файла - итого два файла (данные не пересекаются, все таблицы разные)
Собираюсь обьединить оба приложения и запустить их с единой базой данных но MySQL
.
Один SQLite файл в MySQL уже перенес по вышеуказанной схеме.
- создать MySQL
- подготовить его пустую структуру через “makemigrations”
- выгрузить дампом данные из первого файла SQLite
- загрузить дамп данных в MySQL
.
Не понимаю как мне теперь быть с переносом второй базы.
- Нужно ли мне обььединить оба файла models.py в один и сделать миграцию? (почему-то подозреваю что если их не обьединять, то после миграции второй структуры, первая структура удалится)
- а после этого таким же образом дамп данных из второго файла SQLite?
- не понимаю как работает дамп данных - очищает ли он при этом всю базу (то есть будут ли при втором дампе удалены из базы MySQL те данные, которые я уже импортировал из первого SQLite файла)
.
Спасибо

Отредактировано gtlhbkkj (Июнь 9, 2020 12:33:13)

Офлайн

#4 Июнь 9, 2020 12:53:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

gtlhbkkj
Вы на одном сервере с установленной СУБД MySQL можете держать хоть сколько MySQL баз.
https://dev.mysql.com/doc/refman/8.0/en/database-use.html



Офлайн

#5 Июнь 9, 2020 13:46:40

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

вы имеете в виду что мне не обязательно обьединять оба SQLite файла в одну MYSQL базу?
никогда не имел дело практически с MySQL. Это слегка оправдывает меня.
конечно мне бы очень не хотелось делать кашу из различных приложений внутри одной базы
Если так, то спасибо вы мне очень помогли своим профессиональным советом.

Отредактировано gtlhbkkj (Июнь 9, 2020 13:47:48)

Офлайн

#6 Июнь 9, 2020 16:59:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

gtlhbkkj
вы имеете в виду что мне не обязательно обьединять оба SQLite файла в одну MYSQL базу?
Разумеется. MySQL - это Система Управления Базами Данных see link, а не база данных. База данных, это именованное хранилище данных, вы их можете насоздавать сколько душе угодно.



Офлайн

#7 Июнь 9, 2020 18:27:42

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

В кратце:
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/

Офлайн

#8 Июнь 9, 2020 22:49:37

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

FishHook
gtlhbkkjВы на одном сервере с установленной СУБД MySQL можете держать хоть сколько MySQL баз.https://dev.mysql.com/doc/refman/8.0/en/database-use.html
ясно спасибо
я как-то раньше тупо думал что MySQL - это автоматически означает одна единственная база

Офлайн

#9 Июнь 10, 2020 00:48:13

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как в Django перенести две SQLite базы в одну MySQL базу

хорошо, а как быть в случае, когда у меня, например три задачи в одном проекте.
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
а как станет сейчас? Ведь у каждой задачи своя база и свой файл с переведенным текстом.

Отредактировано gtlhbkkj (Июнь 10, 2020 01:21:14)

Офлайн

  • Начало
  • » Django
  • » как в Django перенести две SQLite базы в одну MySQL базу[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version