Работает как шарм! Вот немного документации: $ ./mysql2sqlite.sh -h host -u MyUserName -pMySecretPassWord myDbase | sqlite3 database.sqlitegist.github.com/943776
kachar
Сценарий просто извлекает аргументы из командной строки и передает их в mysqldump, чтобы вы могли узнать о настройке пользовательских портов и т. Д. С помощью man mysqlилиman mysqldump
Альтернативный метод, который будет работать даже в Windows, но редко упоминается: используйте класс ORM, который абстрагирует для вас конкретные различия в базе данных. например, вы получаете их в PHP ( RedBean ), Python (уровень ORM Django, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), Cocoa ( CoreData ) и т. д.
то есть вы можете сделать это:
Загрузить данные из исходной базы данных с помощью класса ORM.
Храните данные в памяти или сериализуйте на диск.
Сохраняйте данные в целевой базе данных с помощью класса ORM.
и gem install pgесли вы хотите конвертировать из или в базу данных postgres, сиквел должен иметь адаптеры для основных баз данных
Macario
2
замените mysqlна, mysql2если вы используетеmysql2
Carlosin 09
1
Примечание: вам понадобится этот ruby-devпакет для сборки этих собственных пакетов gem.
Panda
1
Пришлось использовать «gem install sequel mysql2 sqlite3», а затем «sequel mysql2: // user: password @ host / database -C sqlite: //db.sqlite»
ИДЕАЛЬНО
17
Не каждую схему БД можно преобразовать. MySQL более сложный и многофункциональный, чем SQLite. Однако, если ваша схема достаточно проста, вы можете сбросить ее в файл SQL и попытаться импортировать / загрузить в базу данных SQLite.
После сброса базы данных MySQL в файл вы можете использовать этот скрипт для преобразования его в SQLite github.com/dumblob/mysql2sqlite (как указано в ответе @David_LeBauer).
Поль Руже,
7
Я столкнулся с той же проблемой около двух дней назад, когда мне пришлось преобразовать базу данных MySQL размером более 20 ГБ в SQLite. Это была непростая задача, и в итоге я написал этот пакет Python, который выполняет эту работу.
Плюс его написания на Python заключается в том, что он кроссплатформенный (в отличие от сценария оболочки / bash) и может быть легко установлен с помощью pip install(даже в Windows). Он использует генераторы и фрагменты обрабатываемых данных и поэтому очень эффективно использует память.
Он вызывается из командной строки, но также может использоваться как стандартный класс Python, который можно включить в более крупную оркестровку Python.
Вот как вы это используете:
Usage: mysql2sqlite [OPTIONS]
Options:-f,--sqlite-file PATH SQLite3 database file [required]-d,--mysql-database TEXT MySQL database name [required]-u,--mysql-user TEXT MySQL user [required]-p,--mysql-password TEXT MySQL password-h,--mysql-host TEXT MySQL host. Defaults to localhost.-P,--mysql-port INTEGER MySQL port. Defaults to 3306.-c,--chunk INTEGER Chunk reading/writing SQL records-l,--log-file PATH Log file-V,--vacuum Use the VACUUM command to rebuild the SQLitedatabasefile, repacking it into a minimal amount
ofdisk space
--use-buffered-cursors Use MySQLCursorBuffered for reading the MySQLdatabase. This can be useful in situations where
multiple queries,with small result sets, need to
be combined or computed with each other.--help Show this message and exit.
Привет, @techouse, выглядит отлично! Есть ли способ работать с .sqlфайлом дампа или требуется подключение к установленной базе данных MySQL?
vortek
Привет! Эммм, нет, для этого нужна рабочая база данных MySQL. Если у вас есть дамп без реального сервера, лучше всего изменить файл вручную, если вы знаете, что делаете.
Клемен Тушар
@arkadianriver Я предлагаю вам всегда использовать виртуальные среды с Python 😎
Клемен Тушар
5
В Sqlite есть официальный список инструментов для конвертации.
Есть разные способы сделать это. У меня тоже была эта проблема, я много искал, а потом получил простой способ конвертировать MySQL в SQLite.
Следуй этим шагам:
Сначала вам нужно установить браузер SQLite DB (очень маленький и быстрый для просмотра таблиц и данных)
Откройте файл MySQL в Блокноте, или было бы здорово, если бы вы открыли его в Блокноте ++.
Удалить первые лишние строки, содержащие информацию или запросы, и сохранить их.
Откройте браузер базы данных SQLite, создайте базу данных, затем таблицы и те же типы, что и в базе данных MySQL.
В строке меню браузера БД SQLite выберите Файл-> затем Импортировать файл данных MySQL, который вы сохранили.
Он легко преобразуется в SQLite после диалогового окна предупреждения.
В случае ошибки удалите лишние строки, если в вашем файле MySQL есть.
Вы также можете установить программное обеспечение преобразователя MySQL в SQLite на пробной основе, но информация, которую я даю для преобразования, - это время жизни.
Это нормально работало, если в ваших данных нет символа вроде апострофа. Например, «Это книга Питера» в sql dumb будет «Это книга Петра». Это приведет к ошибке браузера БД, так как для больших данных их трудно удалить. Но если вы импортируете данные из phpAdmin как CSV в браузер БД, этот импорт будет успешным. Я надеюсь, что это поможет
Seunope
1
Мое решение этой проблемы на Mac заключалось в
Установите Ruby и продолжение, аналогично ответу Macario. Я перешел по этой ссылке, чтобы помочь настроить Ruby, mysql и sqlite3 для разработки Ruby on Rails для Mac OSX.
Установить продолжение
$ gem install sequel
Если еще требуется
% gem install mysql sqlite3
затем использовал следующее, основанное на документе Sequel bin_sequel.rdoc (см. Копирование базы данных)
Как я могу скопировать только одну таблицу из БД, а не всю базу данных mysql?
Атул Вайбхав
Раньше я делал это для одной таблицы, но может быть способ получше. Экспортируйте таблицу как csv с отмеченными именами столбцов в первой строке. Затем с помощью DB Browser для SQLite импортируйте таблицу в мою существующую базу данных sqlite, используя параметр импорта таблицы из csv. Затем вам, вероятно, придется войти и изменить поля на требуемый тип, поскольку я считаю, что все поля будут установлены на ТЕКСТ. В проекте, над которым я работал, мы разработали процесс, в котором мы вызывали api для возврата всех данных в таблице, а затем вставляли / заменяли данные в базе данных приложений.
Grant Luck
Кажется, это работает. Тем не менее, я не могу найти выходной файл. Вы можете помочь мне?
Понтиос
1
Я попробовал несколько методов в этой теме, но у меня ничего не помогло. Итак, вот новое решение, которое я тоже нашел очень простым:
Установите RazorSQL . Работает для Mac, Windows и Linux.
В RazorSQL подключитесь к вашей базе данных, например, на localhost. Преобразование не работает с файлами дампа sql.
Щелкните правой кнопкой мыши свою базу данных -> Преобразование базы данных -> выберите SQLite. Это сохранит текстовый файл со всеми sqliteзапросами, необходимыми для создания этой базы данных.
Установите менеджер баз данных SQLite, например DB Browser для SQLite . Работает на любой ОС.
Создайте пустую базу данных, перейдите на вкладку «Выполнение SQL» и вставьте содержимое из шага 3.
Кажется, что RazorSQL просто создает «общий» файл * .sql с определениями таблиц и вставками данных, но ничего особенного для SQLite. Он не экспортирует Views, что является большим минусом. Клиент mysqldump, который поставляется с MySql, также экспортирует представления, но он также создает много условных вещей и т. Д., Которые SQLite не переваривает.
dalilander
0
Если у вас есть опыт, напишите простые скрипты на Perl \ Python \ etc и конвертируйте MySQL в SQLite. Считайте данные из Mysql и запишите их на SQLite.
Мне нравится SQLite2009 Pro Enterprise Manager, предложенный Jfly. Тем не мение:
Тип данных MySQL INT не преобразуется в тип данных SQlite INTEGER (работает с DBeaver).
Он не импортирует константы внешнего ключа из MySQL (я не смог найти ни одного инструмента, поддерживающего перенос ограничений внешнего ключа из MySQL в SQlite.)
Из списка инструментов конвертера я нашел Kexi . Это инструмент пользовательского интерфейса для импорта с различных серверов БД (включая MySQL) в SQLite. При импорте некоторой базы данных (скажем, из MySQL) он сохраняет ее в формате Kexi. Формат Kexi - это «родной» формат SQLite. Так что просто скопируйте файл kexi и сохраните данные в формате sqlite.
Если вам предоставили файл базы данных и вы не установили правильный сервер (SQLite или MySQL), попробуйте этот инструмент: https://dbconvert.com/sqlite/mysql/ Пробная версия позволяет преобразовать первые 50 записей каждой таблицы , остальные данные помечены водяными знаками. Это программа для Windows, которая может либо выгружать на работающий сервер базы данных, либо выгружать вывод в файл .sql.
Ответы:
На GitHub есть скрипт mysql2sqlite.sh
Как описано в шапке, скрипт можно использовать так:
альтернативы
источник
$ ./mysql2sqlite.sh -h host -u MyUserName -pMySecretPassWord myDbase | sqlite3 database.sqlite
gist.github.com/943776man mysql
илиman mysqldump
Вот это список преобразователей . ( снимок на archive.today )
Альтернативный метод, который будет работать даже в Windows, но редко упоминается: используйте класс ORM, который абстрагирует для вас конкретные различия в базе данных. например, вы получаете их в PHP ( RedBean ), Python (уровень ORM Django, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), Cocoa ( CoreData ) и т. д.
то есть вы можете сделать это:
источник
В Sequel (Ruby ORM) есть инструмент командной строки для работы с базами данных, у вас должен быть установлен ruby, затем:
источник
gem install mysql
иgem install sqlite3
gem install pg
если вы хотите конвертировать из или в базу данных postgres, сиквел должен иметь адаптеры для основных баз данныхmysql
на,mysql2
если вы используетеmysql2
ruby-dev
пакет для сборки этих собственных пакетов gem.Не каждую схему БД можно преобразовать. MySQL более сложный и многофункциональный, чем SQLite. Однако, если ваша схема достаточно проста, вы можете сбросить ее в файл SQL и попытаться импортировать / загрузить в базу данных SQLite.
источник
Я столкнулся с той же проблемой около двух дней назад, когда мне пришлось преобразовать базу данных MySQL размером более 20 ГБ в SQLite. Это была непростая задача, и в итоге я написал этот пакет Python, который выполняет эту работу.
Плюс его написания на Python заключается в том, что он кроссплатформенный (в отличие от сценария оболочки / bash) и может быть легко установлен с помощью
pip install
(даже в Windows). Он использует генераторы и фрагменты обрабатываемых данных и поэтому очень эффективно использует память.Я также приложил некоторые усилия, чтобы правильно перевести большинство типов данных из MySQL в SQLite .
Инструмент также тщательно протестирован и работает на Python 2.7 и 3.5+ .
Он вызывается из командной строки, но также может использоваться как стандартный класс Python, который можно включить в более крупную оркестровку Python.
Вот как вы это используете:
источник
.sql
файлом дампа или требуется подключение к установленной базе данных MySQL?В Sqlite есть официальный список инструментов для конвертации.
http://www2.sqlite.org/cvstrac/wiki?p=ConverterTools
источник
Самый простой способ конвертировать MySql DB в Sqlite:
1) Создайте файл дампа sql для вашей базы данных MySql.
2) Загрузите файл в онлайн-конвертер RebaseData здесь
3) На странице появится кнопка загрузки для загрузки базы данных в формате Sqlite.
источник
Я нашел идеальное решение
Во-первых, вам понадобится этот скрипт (поместите его в файл с именем mysql-to-sqlite.sh):
Затем скопируйте копию своей базы данных:
А теперь запустим преобразование:
И если все пойдет хорошо, теперь у вас должен быть dumpfile.db, который можно использовать через sqlite3.
источник
Есть разные способы сделать это. У меня тоже была эта проблема, я много искал, а потом получил простой способ конвертировать MySQL в SQLite.
Следуй этим шагам:
Сначала вам нужно установить браузер SQLite DB (очень маленький и быстрый для просмотра таблиц и данных)
Откройте файл MySQL в Блокноте, или было бы здорово, если бы вы открыли его в Блокноте ++.
Удалить первые лишние строки, содержащие информацию или запросы, и сохранить их.
Откройте браузер базы данных SQLite, создайте базу данных, затем таблицы и те же типы, что и в базе данных MySQL.
В строке меню браузера БД SQLite выберите Файл-> затем Импортировать файл данных MySQL, который вы сохранили.
Он легко преобразуется в SQLite после диалогового окна предупреждения.
В случае ошибки удалите лишние строки, если в вашем файле MySQL есть.
Вы также можете установить программное обеспечение преобразователя MySQL в SQLite на пробной основе, но информация, которую я даю для преобразования, - это время жизни.
источник
Мое решение этой проблемы на Mac заключалось в
Установить продолжение
Если еще требуется
затем использовал следующее, основанное на документе Sequel bin_sequel.rdoc (см. Копирование базы данных)
Окна пользователь может установить Ruby , и Sequel для решения окна.
источник
Я попробовал несколько методов в этой теме, но у меня ничего не помогло. Итак, вот новое решение, которое я тоже нашел очень простым:
sqlite
запросами, необходимыми для создания этой базы данных.Вот и все, теперь у вас есть база данных SQLite.
источник
Если у вас есть опыт, напишите простые скрипты на Perl \ Python \ etc и конвертируйте MySQL в SQLite. Считайте данные из Mysql и запишите их на SQLite.
источник
Мне нравится SQLite2009 Pro Enterprise Manager, предложенный Jfly. Тем не мение:
Тип данных MySQL INT не преобразуется в тип данных SQlite INTEGER (работает с DBeaver).
Он не импортирует константы внешнего ключа из MySQL (я не смог найти ни одного инструмента, поддерживающего перенос ограничений внешнего ключа из MySQL в SQlite.)
источник
Из списка инструментов конвертера я нашел Kexi . Это инструмент пользовательского интерфейса для импорта с различных серверов БД (включая MySQL) в SQLite. При импорте некоторой базы данных (скажем, из MySQL) он сохраняет ее в формате Kexi. Формат Kexi - это «родной» формат SQLite. Так что просто скопируйте файл kexi и сохраните данные в формате sqlite.
источник
Если вам предоставили файл базы данных и вы не установили правильный сервер (SQLite или MySQL), попробуйте этот инструмент: https://dbconvert.com/sqlite/mysql/ Пробная версия позволяет преобразовать первые 50 записей каждой таблицы , остальные данные помечены водяными знаками. Это программа для Windows, которая может либо выгружать на работающий сервер базы данных, либо выгружать вывод в файл .sql.
источник