Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

До тех пор, пока файл дампа MySQL не будет превышать SQLite язык запросов, вы должны иметь возможность довольно легко мигрировать:

 [email protected]~$ mysqldump old-database > old-database-dump.sql
 [email protected]~$ sqlite3 -init old-database-dump.sql new-database

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

UPDATE:

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

Просто синтаксис комментария, auto_increment и TYPE = declay, а символы escape различаются.

Ответ 3

Вот список преобразователей:

<ч/" > Альтернативный метод, который будет работать хорошо, но редко упоминается, - это использовать класс ORM, который абстрагирует конкретные различия в базе данных для вас. например вы получаете их в PHP (RedBean), Python (слой Django ORM, Storm, SqlAlchemy), Ruby on Rails (ActiveRecord), Cocoa (CoreData)

то есть. вы можете сделать это:

  • Загрузка данных из исходной базы данных с использованием класса ORM.
  • Сохранение данных в памяти или сериализация на диск.
  • Хранить данные в исходной базе данных с использованием класса ORM.

Ответ 4

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