H2Databaseファイルにいくつかのデータがあります。データベースファイル.sql
に変換します。私が従うことができる方法は何ですか?H2DatabaseデータベースファイルをMySQLデータベースの.sqlファイルに変換する方法は?
答えて
H2データベースでは、SCRIPT
SQLステートメントまたはScript command line toolを使用してSQLスクリプトを作成できます。 MySQLデータベースに対してスクリプトを実行する前に、スクリプトを微調整する必要があります。
H2データベースによって生成されたSQLスクリプトは、MySQLがサポートするSQLと完全に互換性がありません。 SQLスクリプトを手動で変更する必要があります。これには、H2とMySQLの両方をかなりよく知っている必要があります。
H2からMySQLにデータをコピーする代わりに、などのサードパーティのツールをSQuirreL DB Copy Pluginプラグインと併用することもできます。 (最初にSQuirreL SQLをインストールする必要があります。その上にSQuirereL DB Copyプラグインをインストールしてください)
私はSQuirreL SQLをSQuirreL DB Copy Pluginプラグインとともに使用しました。 .. ... クレアーレ表..... .... :いいえ選択したデータベース(SQLエロコード= 1046) 失敗したSQLはなかった。しかし、それはコピーが失敗した を与える仕事何もしません(バインド変数なし) これを修正する方法。 –
さて、SquirreL DB Copy Pluginメーリングリストにお尋ねください。しかし、私は、エラーメッセージが "No database select"であれば - データベースを選択したのでしょうか? –
左上隅に「カタログ」というドロップダウンがあり、そこにテーブルをコピーするデータベースが選択されています。 この問題は解決されている可能性がありますが、今日同じ問題が発生し、同じ問題を抱えている他の人にこのコメントを追加しました –
h2からmysqlへの移行を行うGroovyスクリプトを作成しました。そこからmysqldumpを実行できます。テーブルがMysqlデータベースに存在する必要があります。軽微な変更を加えたDBMSの場合にも有効です。
@Grapes(
[
@Grab(group='mysql', module='mysql-connector-java', version='5.1.26'),
@Grab(group='com.h2database', module='h2', version='1.3.166'),
@GrabConfig(systemClassLoader = true)
])
import groovy.sql.Sql
def h2Url='jdbc:h2:C:\\Users\\xxx\\Desktop\\h2\\sonardata\\sonar'
def h2User='sonar'
def h2Passwd='sonar'
def mysqlUrl='jdbc:mysql://10.56.xxx.xxx:3306/sonar?useunicode=true&characterencoding=utf8&rewritebatchedstatements=true'
def mysqlUser='sonar'
def mysqlPasswd='xxxxxx'
def mysqlDatabase='sonar'
sql = Sql.newInstance(h2Url, h2User, h2Passwd, 'org.h2.Driver')
def tables = [:]
sql.eachRow("select * from information_schema.columns where table_schema='PUBLIC'") {
if(!it.TABLE_NAME.endsWith("_MY")) {
if (tables[it.TABLE_NAME] == null) {
tables[it.TABLE_NAME] = []
}
tables[it.TABLE_NAME] += it.COLUMN_NAME;
}
}
tables.each{tab, cols ->
println("processing $tab")
println("droppin $tab"+"_my")
sql.execute("DROP TABLE IF EXISTS "+tab+"_my;")
sql.execute("create linked table "+tab+"_my ('com.mysql.jdbc.Driver', '"+mysqlUrl+"', '"+mysqlUser+"', '"+mysqlPasswd+"', '"+mysqlDatabase+"."+tab.toLowerCase()+"');")
sql.eachRow("select count(*) as c from " + tab + "_my"){println("deleting $it.c entries from mysql table")}
result = sql.execute("delete from "+tab+"_my")
colString = cols.join(", ")
sql.eachRow("select count(*) as c from " + tab){println("starting to copy $it.c entries")}
sql.execute("insert into " + tab + "_my ("+colString+") select "+colString+" from " + tab)
}
Thomas Muellerに答えて、SquirrelSQLはうまく機能しました。
ゴーへの「ドライバのリスト」、すべてがデフォルトでは赤です: はここでWindowsがH2データベースを変換するための手順です。
"H2"ドライバを選択し、 "Extra Class Path"に "h2-1.3.173.jar"( の場合)のフルパスを指定します。 H2ドライバーは青の チェックをリストに表示する必要があります。
ターゲットドライバ(PostgreSQLのは、MySQL)を選択し、 は同じことを行うには、PostgreSQL用たとえば、エクストラクラスパスに 「のpostgresql-9.4-1201.jdbc41.jar」へのフルパスを指定します。
H2を起動するときに取得するjdbcチェーンのコピーや貼り付けなど、JDBCチェーンを設定する場合は、「+」をクリックしてH2に「+」をクリックします。 "+"で構成し、 "テストする"。
エイリアスをダブルクリックすると、データベース内のすべてが新しいタブに表示されます。ソースデータベースのテーブルに移動し、すべてのテーブルで複数選択し、右クリックします: "テーブルのコピー"。
エイリアスからターゲットデータベースに移動し、「ペーストテーブル」を実行します。すべての表がすべてコピーされると、外部キー参照も生成されます。
主キーを確認してください:H2からPostgreSQLに、私は主キー制約と自動インクリメント機能を失いました。 右クリックしてカラムとテーブルの名前を変更することもできます: "refactor"。私はフルコピーの後に予約語列の名前を変更するために、名前のチェックインオプションを無効にすることによってそれを使用しました。
これは私にとってはうまくいきました。
- 1. mysql dbのテーブルに.sqlファイルを変換する方法
- 2. MYSQLデータベースをOracleデータベースに変換する方法
- 3. PHPスクリプトを使用してデータベースfoxpro(.dbf)ファイルをsqliteデータベースファイルに変換する方法は?
- 4. SQLデータベースのイメージをSystem.Drawing.Imageに変換する方法は?
- 5. T-SQLまたは.netコードを使用してMdf/ldfデータベースファイルを.bakファイル(db restore)に変換する方法
- 6. Visual FoxproデータベースをSQL Serverデータベースに変換する方法
- 7. PHP MySQLのデータベース入力をパラメータに変換する方法
- 8. .sqlファイルをsqlite用の.dbファイルに変換する方法
- 9. SQLデータベースファイルをインポートする方法
- 10. sqliteデータベースをcsvファイル形式に変換する方法は?
- 11. SqliteデータベースをMysqlに変換する方法
- 12. GUID INTO intをSQLデータベースに変換する方法
- 13. ExcelファイルをSQLファイルに変換する方法
- 14. MS SQL Serverデータベース(.mdfファイル)をPhpMyAdmin経由でMySQLに変換しますか?
- 15. mongoDBコレクションをmySQLデータベースに変換する
- 16. JSONをMysqlデータベースに変換する
- 17. mysqlデータベースをOracleに変換する
- 18. mysqlデータベースを本当に変換する
- 19. MysqlをSqliteデータベースに変換する
- 20. 既存のsqliteデータベースファイルをandroidの新しいデータベースファイルに置き換える方法
- 21. mySQLをPDOに変換する方法
- 22. mysqlをmysqliに変換する方法
- 23. SQLデータベースの変換
- 24. データベースファイル(.sql)を.mdfファイルに変換するにはどうすればよいですか?
- 25. データベース定義ファイルをSQLに変換する
- 26. XMLをSQL Serverデータベースに変換する
- 27. AccessデータベースをSQL Serverに変換する
- 28. SQL Pythonデータベースをクラスに変換する
- 29. SQL Server 2008をMySQLに変換する
- 30. SQL ServerコードをMySQLに変換する
私はそれを試みました。しかしそれは失敗する。 –
私が書いたように、あなたはMySQLに対してそれを実行する前にスクリプトを修正する必要があるかもしれません。 –
私は何をしなければならないのですか?いつもエラーが出ます。私はMySQL 5.1.61を使用しています。 –