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

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

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

10.08.2008 15:03:20
4 ОТВЕТА

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

1
10.08.2008 15:23:55
У r есть библиотеки sqlite и mysql, что приятно. Вы можете тянуть и толкать из одной и той же рамки.
EngrStudent 11.05.2016 20:27:09

До тех пор, пока файл дампа 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-символы различаются.

2
10.08.2008 19:16:21

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

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

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

6
10.08.2008 19:25:58

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


Альтернативный метод, который будет работать хорошо, но редко упоминается: используйте класс ORM, который абстрагирует вас от конкретных различий в базе данных. например, вы получаете их в PHP ( RedBean ), Python (слой ORM Джанго, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), какао ( CoreData )

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

  1. Загрузка данных из исходной базы данных с использованием класса ORM.
  2. Храните данные в памяти или сериализуйте на диск.
  3. Сохраните данные в исходной базе данных, используя класс ORM.
2
14.05.2011 07:13:30