Можно ли конвертировать из MySQL в SQLite с помощью бесплатного инструмента в windows?
Существует mysql2sqlite.sh script на GitHub
Как описано в заголовке, script можно использовать следующим образом:
./mysql2sqlite.sh myDbase | sqlite3 database.sqlite
альтернативы
$ ./mysql2sqlite.sh -h host -u MyUserName -pMySecretPassWord myDbase | sqlite3 database.sqlite
sqlite3 $ ./mysql2sqlite.sh -h host -u MyUserName -pMySecretPassWord myDbase | sqlite3 database.sqlite
gist.github.com/943776
Вот список преобразователей:
Ссылка кажется сейчас недоступной, поэтому она доступна только через моментальный снимок на сайте archive.org, последний обновленный 2011.
Альтернативный метод, который работал бы даже на окнах, но редко упоминается: используйте класс ORM, который абстрагирует определенные различия в базе данных для вас. например вы получаете их в PHP (RedBean), Python (слой Django ORM, Storm, SqlAlchemy), Ruby on Rails (ActiveRecord), Cocoa (CoreData) и т.д.
то есть. вы можете сделать это:
Sequel (Ruby ORM) имеет инструмент командной строки для работы с базами данных, у вас должен быть установлен рубин, а затем:
$ gem install sequel mysql2 sqlite3
$ sequel mysql2://user:password@host/database -C sqlite://db.sqlite
gem install mysql
и gem install sqlite3
gem install pg
если вы хотите конвертировать из или в базу данных postgres, у сиквела должны быть адаптеры для основных баз данных.
Не каждая конвертация БД может быть преобразована. MySQL более сложный и многофункциональный, чем SQLite. Однако, если ваша схема достаточно проста, вы можете сбросить ее в файл SQL и попытаться импортировать ее/загрузить в SQLite DB.
С этой страницы: http://osenxpsuite.net
скачать SQLite2009 Pro Enterprise Manager
Это бесплатно. Он может импортировать данные из базы данных Mysql. Я просто преобразовал базу данных 17M. Это прекрасно.
Я нашел идеальное решение! посмотрите: http://www.jbip.net/content/how-convert-mysql-sqlite
Во-первых, вам нужен этот скрипт (поместите его в файл с именем "mysql-to-sqlite.sh"):
#!/bin/bash
if [ "x$1" == "x" ]; then
echo "Usage: $0 <dumpname>"
exit
fi
cat $1 |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
grep -v ' PRIMARY KEY ' |
sed '/^SET/d' |
sed 's/ unsigned / /g' |
sed 's/ auto_increment/ primary key autoincrement/g' |
sed 's/ smallint([0-9]*) / integer /g' |
sed 's/ tinyint([0-9]*) / integer /g' |
sed 's/ int([0-9]*) / integer /g' |
sed 's/ character set [^ ]* / /g' |
sed 's/ enum([^)]*) / varchar(255) /g' |
sed 's/ on update [^,]*//g' |
sed 's/\\r\\n/\\n/g' |
sed 's/\\"/"/g' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
$a=$1;
s/\\'\''/'\'\''/g;
s/\\n/\n/g;
s/\),\(/\);\n$a\(/g;
}
' > $1.sql
cat $1.sql | sqlite3 $1.db > $1.err
ERRORS='cat $1.err | wc -l'
if [ $ERRORS == 0 ]; then
echo "Conversion completed without error. Output file: $1.db"
rm $1.sql
rm $1.err
else
echo "There were errors during conversion. Please review $1.err and $1.sql for details."
fi
Затем создайте копию вашей базы данных:
you@prompt:~$ mysqldump -u root -p --compatible=ansi --skip-opt generator > dumpfile
А теперь запустите преобразование:
you@prompt:~$ mysql-to-sqlite.sh dumpfile
И если все пойдет хорошо, у вас теперь должен быть файл dumpfile.db, который можно использовать через sqlite3.
you@prompt:~$ sqlite3 dumpfile.db
SQLite version 3.6.10
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
dg_cities dg_forms dg_surnames
dg_counties dg_provinces dg_user_accounts
dg_countries dg_provinces_netherlands
dg_first_names dg_states
Существуют разные способы сделать это. У меня также была эта проблема, и я обыскал много. Затем я получил простой способ конвертировать MySql в Sqlite.
Следуйте этим инструкциям:
Шаг 1. Сначала вам нужно установить браузер SqliteDB (очень маленький и быстрый просмотр таблиц и данных).
Шаг 2: откройте свой MySql файл в "Блокноте" или было бы здорово, если вы откроете в Notepad ++
Шаг 3. Удалите первые дополнительные строки. Содержит информацию или запросы и сохраните ее.
Шаг 4: Откройте Sblite Db Brower, создайте базу данных, затем таблицы и те же типы, что и в базе данных Mysql.
Шаг 5: в строке меню браузера Sqlite Db выберите файл- > затем импортируйте файл Mysql, который вы сохранили.
Он легко преобразуется в диалоговое окно Sqlite After Warning.
Если ошибка удаляется, добавьте дополнительные строки, если ваш файл Mysql.
Вы также можете установить программное обеспечение Mysql to Sqlite Converter на пробную основу. Но информация, которую я даю для преобразования, - это время жизни.
Вы также можете проверить этот учебник для получения дополнительной справки: https://www.youtube.com/watch?v=UcAHsm9iwpw
Надеюсь, что эта справка.
Sqlite имеет официальный список инструментов преобразования.
Мое решение этой проблемы с Mac состояло в
Установить сиквел
$ gem install sequel
Если все еще требуется
% gem install mysql sqlite3
затем использовал следующий из документа Sequel bin_sequel.rdoc (см. Копировать базу данных)
sequel -C mysql://myUserName:myPassword@host/databaseName sqlite://myConvertedDatabaseName.sqlite
Пользователь windows может установить Ruby и Sequel для решения Windows.
Нашел этот плагин для MySQL WorkBench:
http://www.henlich.de/software/sqlite-export-plugin-for-mysql-workbench/
Самый простой способ конвертировать MySql DB в Sqlite:
1) Создать файл дампа sql для вашей базы данных MySql.
2) Загрузите файл в онлайн-конвертер RebaseData здесь
3) Кнопка загрузки появится на странице для загрузки базы данных в формате Sqlite.
Я пробовал несколько методов в этой теме, но ничего не работало для меня. Итак, вот новое решение, которое также оказалось очень простым:
sqlite
, необходимыми для создания этой базы данных.Что это, теперь у вас есть база данных SQLite.
Если вы получили файл базы данных и не установили правильный сервер (SQLite или MySQL), попробуйте этот инструмент: https://dbconvert.com/sqlite/mysql/ Пробная версия позволяет конвертировать первые 50 записей каждой таблицы, остальная часть данных - с водяными знаками. Это программа для Windows и может либо сбрасываться на работающий сервер базы данных, либо выгружать вывод в файл .sql.
Из список инструментов конвертера Я нашел Kexi. Это инструмент пользовательского интерфейса для импорта с различных серверов БД (включая MySQL) в SQLite. При импорте некоторой базы данных (скажем, из MySQL) она хранит ее в формате Kexi. Формат Kexi - это "родной" формат SQLite. Так просто скопируйте файл kexi и сохраните свои данные в формате sqlite
Мне нравится SQLite2009 Pro Enterprise Manager, предложенный Jfly. Однако:
Тип данных MySQL INT не преобразован в тип данных SQlite INTEGER (работает с DBeaver)
Он не импортирует внешние ключи из MySQL (я не смог найти инструмент, который поддерживает передачу ограничений внешнего ключа от MySQL до SQlite.)
Если у вас есть опыт, пишите простые скрипты с помощью Perl\Python\etc и конвертируйте MySQL в SQLite. Прочитайте данные из Mysql и напишите на SQLite.
Это простой конвертер: http://mysql2sqlite.felipemarques.com.br/ (сайт находится на бразильском португальском языке)