弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

MySQLからPostgreSQLへの移行

RollerのDBをMySQLからPostgreSQLに移行する

Converting from other Databases to PostgreSQL

PostgreSQLのWikiのお勧めは
MySQL to Postgres Migration Wizard by EnterpriseDB v1.1

どこにもドキュメントもないけど
ソースコードが公開されている

PostgreSQLにrollerユーザを作成

#!/bin/sh
psql -U postgres <<END_OF_SQL
create user roller with password 'hoge' createdb;
END_OF_SQL

 

rollerdbデータベースとスキーマを作成し
ユーザrollerのデフォルトスキーマをrollerdbに変更

#!/bin/sh
psql -U roller -d template1 <<END_OF_SQL
create database rollerdb;
END_OF_SQL
psql -U roller -d rollerdb <<END_OF_SQL2
create schema rollerdb;
alter user roller set search_path to rollerdb;
END_OF_SQL2

 

WEB-INF/classes/dbscripts/postgresql/createdb.sql を修正
最後のinsert文を削除
foreign key制約をfk.sqlに移動

MTKを起動
MigrationWizard-1.1/wizard/wizard.shを作成して起動

#!/bin/sh
CLASSPATH=build/core:build/wizard
for i in lib/*.jar lib/*.zip
do
CLASSPATH=$CLASSPATH:$i
done
export CLASSPATH
java com.enterprisedb.migration.WizardLauncher
画面は省略
Migration OptionsをData Onlyに設定して移行
エラーメッセージがないことを確認

 

外部キー制約をrollerdbに作成

#!/bin/sh
psql -U roller -d rollerdb -f fk.sql

/var/lib/tomcat5/common/classes/roller-custom.propertiesを修正
;database.jdbc.driverClass=com.mysql.jdbc.Driver
;database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8
database.jdbc.driverClass=org.postgresql.Driver
database.jdbc.connectionURL=jdbc:postgresql://localhost:5432/rollerdb
tomcat再起動と動作確認

 

投稿されたコメント:

コメント
コメントは無効になっています。