Какой лучший способ преобразовать базу данных mysql в базу данных sqlite?

В настоящее время у меня есть относительно небольшая (4 или 5 таблиц, 5000 строк) база данных MySQL, которую я хотел бы преобразовать в базу данных sqlite. Поскольку мне потенциально придется делать это более одного раза, я был бы признателен, если бы кто-нибудь мог порекомендовать какие-либо полезные инструменты или, по крайней мере, любой легко воспроизводимый метод.

(У меня есть полный доступ администратора к задействованной базе данных / машинам.)

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
21
0
2 691
4

Ответы 4

Если это всего лишь несколько таблиц, вы, вероятно, могли бы написать это на своем предпочитаемом языке сценариев и все это сделать к тому времени, которое потребуется, чтобы прочитать все ответы или найти подходящий инструмент. Я бы так и поступил. :)

r имеет библиотеки sqlite и mysql, что приятно. вы можете тянуть и толкать внутри одной и той же структуры.

EngrStudent 11.05.2016 23:27

Пока файл дампа MySQL не превышает язык запросов SQLite, вы сможете довольно легко выполнить миграцию:

 tgl@moto~$ mysqldump old-database > old-database-dump.sql
 tgl@moto~$ sqlite3 -init old-database-dump.sql new-database

Я сам не пробовал.

ОБНОВИТЬ:

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

Различаются только синтаксис комментария, объявление auto_increment & TYPE = и escape-символы.

Мне приходилось делать подобные вещи несколько раз. Самым простым подходом для меня было написать сценарий, который извлекает данные из одного источника и производит вывод для нового источника данных. Просто выполните запрос SELECT * для каждой таблицы в вашей текущей базе данных, а затем выгрузите все строки в запрос INSERT INTO для вашей новой базы данных. Вы можете либо выгрузить его в файл, либо передать его прямо в интерфейс базы данных.

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

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

Вот список конвертеров:


An alternative method that would work nicely but is rarely mentioned is: use a ORM class that abstracts the specific database differences away for you. e.g. you get these in PHP (Красная фасоль), Python (Django's ORM layer, Буря, SqlAlchemy), Ruby on Rails (ActiveRecord), Cocoa (CoreData)

то есть вы могли бы сделать это:

  1. Загрузите данные из исходной базы данных с помощью класса ORM.
  2. Храните данные в памяти или сериализуйте на диск.
  3. Храните данные в исходной базе данных с помощью класса ORM.

Другие вопросы по теме