Как экспортировать базу данных mySql во встроенную базу данных (например, H2)? - PullRequest
1 голос
/ 15 мая 2011

Мы работали над проектом. В начале у нас были некоторые проблемы с базой данных, поэтому мы использовали базу данных mySQL-сервера, чтобы обойти это.

Теперь нам действительно нужно вернуться к встроенной базе данных, о доступе не может быть и речи (должен быть кроссплатформенным)

Наш наставник предложил использовать встроенную базу данных H2, но наш sql-дамп получает синтаксические ошибки, если мы пытаемся запустить его в консоли H2.

Есть мысли? Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 11 сентября 2012

Чтобы сгенерировать подходящий для скрипта SQL SQL в системе Unix, вы можете попробовать следующее:

mysqldump -u root -c --p --skip-opt db_name | sed -e "/^--/d" -e 's/`//g' -e 's/bigint(20)/numeric(20)/g' -e 's/double\(([^(]*)\)/double/' -e 's/int(11)/integer/g' -e '/^\/\*.*\*\//d' -e '/^LOCK TABLES/d' -e '/^\/\*/,/\*\//c\;' -e '/^CREATE TABLE/,/);/{/^  KEY/d; /^  PRIMARY KEY/ s/,$//}' > db.sql

В настоящее время не поддерживается преобразование всех специфических операторов mysql, не стесняйтесь редактировать и добавлять дополнительные преобразования.

1 голос
/ 17 мая 2011

SQL-скрипт, сгенерированный MySQL, предназначен для работы с MySQL.Он содержит параметры и функции, которые не поддерживаются другими базами данных.

Как описано в связанном вопросе , вы можете попробовать создать дамп, используя параметр совместимости .Но вам все равно может потребоваться исправить проблемы вручную.

...