■ 内容
開発環境のデータベースで修正した項目の内容を実行環境のデータベースに反映する作業というのは結構な頻度であると思います。
一つ二つの変更であれば手作業でやってもいいのですが、数が多くなってくると面倒だったり、入力ミスが起きたりしてトラブルの原因になる場合が多いと思います。
私も今までは両環境のデータベースをダンプ比較し、手動で更新していたのですが、大きめの仕様変更が入ってくるようになり、手間になってきたのでどうしようか調べてみたところ、MySQLWorkbenchで出来るようなので試してみました。 それの備忘録。
■ 用意するもの
MySQLWorkBench(5.2.34)
■ 前提
開発環境と実行環境に接続できる状態()
■ ざっくりと説明
開発側のデータベースを読み込んで一時データを作成、それと実行環境データベースを比較して、差分をSQL文にして同期
■ 作業
1,モデルの作成
MySQL WorkBenchを起動して赤枠内の「Create EER Model From Existing Database」をクリック
2,開発環境のデータベースへ接続
Stored Connectionから定義済みのコネクションを選択するか、接続情報を入力して「Next」をクリック
データベースの解析が成功すると以下の画面になるので「Next」をクリック
エラーが発生した場合は接続情報やデータベースの定義を見直してください
対象のスキーマにチェックを入れて「Next」をクリック
何かの解析が成功すると以下の画面になるので「Next」をクリック
対象のテーブル等の情報が表示されるので「Place imported objects on a diagram」のチェックを外して「Execute」をクリック
※ ここをチェック入れたままにするとER図が生成されて大変なことになります(個人的に)
成功したら「Next」をクリック
「Finish」をクリック
モデルが出来ました。
3,実行環境への更新
メニュー「Database」-「Synchronize Model...」をクリック
Stored Connectionから定義済みのコネクションを選択するか、接続情報を入力して「Next」をクリック
更新先のスキーマを選択して「Next」をクリック
「Next」をクリック
差分が表示されるので確認して「Next」をクリック
同期したくないテーブルがある場合は選択して「Ignore」ボタンをクリックして無効にします。
同期用のSQL文が生成されるので、そのまま同期を開始する場合は「Execute」、一度ファイルに保存する場合は「Save to File」をクリック
以上で同期が行われ、開発環境での変更が実行環境へ反映されます。
エラーが発生する場合は主キーが変とか、デフォルト値がおかしいとかメッセージが出ますのでそれに合わせる必要がありそうです。
また、当然の事ですが、何かあってもいいようにバックアップを取った後でやることをお勧めします。
2011年8月19日金曜日
2011年7月8日金曜日
Linuxビギナでも30分で始められるRedMine+Mercurial
長くなったのでまとめ
Linuxビギナでも30分で始められるRedMine+Mercurial(1)
仮想マシンの作成
Linuxビギナでも30分で始められるRedMine+Mercurial(2)
RedMineのインストール1
Linuxビギナでも30分で始められるRedMine+Mercurial(3)
RedMineのインストール2
Linuxビギナでも30分で始められるRedMine+Mercurial(4)
Webminの初期設定
Linuxビギナでも30分で始められるRedMine+Mercurial(5)
日本語文字化け対策
Linuxビギナでも30分で始められるRedMine+Mercurial(6)
MySQLの設定
Linuxビギナでも30分で始められるRedMine+Mercurial(7)
MySQLのテーブル書き換え
Linuxビギナでも30分で始められるRedMine+Mercurial(7)
Linuxビギナでも30分で始められるRedMine+Mercurial(6) の続き
9,WindowsからMySQLテーブルの書き換え
Windows側でMySQL Administrator を起動し、先ほど作成した情報でログインします。
画面左のメニューより「バックアップ」を選択し、
画面下の「New Project」ボタンを選択し、新規プロジェクトを作成
Schemata で 「railsapp_production」 を選択して、
画面右下の「Execute Backup Now」をクリックします。
適当なところに保存します。
書き出されたファイルをテキストエディタで開きます、Windowsのメモ帳では改行が変になったのでEmEditorや秀丸といったエディタが良いと思われます。
以下のキーワードを一括置換して保存します。
MySQL Administrator の画面左より「リストア」を選択し、
右下の「Open Backup File」を選択します。
先程のファイルを選択
画面右下の「Start Restore」を選択してMySQLに書き戻します。
これまでの作業でRedMineのデータテーブルが日本語対応されます。
Mercurialの使い方については別途予定
9,WindowsからMySQLテーブルの書き換え
Windows側でMySQL Administrator を起動し、先ほど作成した情報でログインします。
画面左のメニューより「バックアップ」を選択し、
画面下の「New Project」ボタンを選択し、新規プロジェクトを作成
Schemata で 「railsapp_production」 を選択して、
画面右下の「Execute Backup Now」をクリックします。
適当なところに保存します。
書き出されたファイルをテキストエディタで開きます、Windowsのメモ帳では改行が変になったのでEmEditorや秀丸といったエディタが良いと思われます。
以下のキーワードを一括置換して保存します。
置換前 | 置換後 | |
ENGINE=MyISAM | → | ENGINE=InnoDB |
DEFAULT CHARSET=latin1 | → | DEFAULT CHARSET=utf8 |
MySQL Administrator の画面左より「リストア」を選択し、
右下の「Open Backup File」を選択します。
先程のファイルを選択
画面右下の「Start Restore」を選択してMySQLに書き戻します。
これまでの作業でRedMineのデータテーブルが日本語対応されます。
Mercurialの使い方については別途予定
Linuxビギナでも30分で始められるRedMine+Mercurial(6)
Linuxビギナでも30分で始められるRedMine+Mercurial(5)の続き
8,MySQLの設定
上のメニューから「サーバ」-「MySQLのデータベースサーバ」を選択します。
インストール時に決めたrootのパスワードを入れてログインします。
画面下にある「MySQLサーバの設定」を選択します。
「MySQL server listenning address」 を「Any」にして、
「Save and Restart MySQL」をクリックします。
こうすることで別PCからのデータベース接続が可能になります。
余談ですが、ここの設定を忘れて1時間ほど悩んでいました。
「ユーザの許可」を選択します
「新規ユーザを作成」を選択します
ユーザ名、パスワードを設定して「保存」を選択します
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(7)
8,MySQLの設定
上のメニューから「サーバ」-「MySQLのデータベースサーバ」を選択します。
インストール時に決めたrootのパスワードを入れてログインします。
画面下にある「MySQLサーバの設定」を選択します。
「MySQL server listenning address」 を「Any」にして、
「Save and Restart MySQL」をクリックします。
こうすることで別PCからのデータベース接続が可能になります。
余談ですが、ここの設定を忘れて1時間ほど悩んでいました。
「ユーザの許可」を選択します
「新規ユーザを作成」を選択します
ユーザ名、パスワードを設定して「保存」を選択します
項目 | 値 |
ユーザ名 | develop |
パスワード | 適当に |
ホスト | 任意 ※1 |
許可 | テーブル データを選択 |
テーブル データを挿入 | |
テーブル データを更新 | |
テーブル データを削除 | |
テーブルを作成 | |
テーブルを削除 | |
テーブルの代替 |
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(7)
Linuxビギナでも30分で始められるRedMine+Mercurial(5)
Linuxビギナでも30分で始められるRedMine+Mercurial(4) の続き
6,MySQLのデフォルト文字コード変更
画面上のメニューから「Tools」-「ファイルマネージャ」を選択
セキュリティの警告が表示されるのでチェックを入れて「はい」を選択
ファイルマネージャが起動するので
左のツリーから /etc/mysql/my.cnf を選択して
画面上部のメモ帳みたいなボタンを押します。
(文字化けは気にしない)
メモ帳のようなものが起動するので、以下の三箇所にデフォルト文字コードの定義を追記して、右下の「Save & Close」を選択
[mysqld]
default-character-set=utf8
[mysqldump]
ault-character-set=utf8
[mysql]
default-character-set=utf8
7,RedMineの文字化け対策
左のツリーから /var/www/railsapp/app/controllers/application_controller.rb
を選択してメモ帳みたいな奴を起動
以下の赤文字の部分を追記して「Save & Close」
class ApplicationController < ActionController::Base
$KCODE="UTF8"
include Redmine::I18n
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(6)
6,MySQLのデフォルト文字コード変更
画面上のメニューから「Tools」-「ファイルマネージャ」を選択
セキュリティの警告が表示されるのでチェックを入れて「はい」を選択
ファイルマネージャが起動するので
左のツリーから /etc/mysql/my.cnf を選択して
画面上部のメモ帳みたいなボタンを押します。
(文字化けは気にしない)
メモ帳のようなものが起動するので、以下の三箇所にデフォルト文字コードの定義を追記して、右下の「Save & Close」を選択
[mysqld]
default-character-set=utf8
[mysqldump]
ault-character-set=utf8
[mysql]
default-character-set=utf8
7,RedMineの文字化け対策
左のツリーから /var/www/railsapp/app/controllers/application_controller.rb
を選択してメモ帳みたいな奴を起動
以下の赤文字の部分を追記して「Save & Close」
class ApplicationController < ActionController::Base
$KCODE="UTF8"
include Redmine::I18n
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(6)
Linuxビギナでも30分で始められるRedMine+Mercurial(4)
Linuxビギナでも30分で始められるRedMine+Mercurial(3) の続き
前回までの作業でとりあえず起動するようにはなったのですが、
登録した日本語が文字化するという問題があるので対策をしていきます。
なお、今回はタイトルのとおりLinuxビギナを対象としていて、
コマンドラインからどうこうするのは考えていませんのでご了承ください、
というかコマンドラインからの方法がイマイチ分からないです。
5,Webminの初期設定
先の画面に表示されているWebminのアドレス(http://IPアドレス:12321)をブラウザに入力して接続します。 以下の様に警告画面が出ますが「このまま続行」を押してください。
Webminのログイン画面が表示されますので、インストール時に設定した情報でログインします。
画面左上のメニューバーより「Webmin」-「Webmin Configuration」を選択します。
「Language」を選択します。
Webmin Language で「Japanese (JA_JP.UTF-8)」を選択して、「Change Language」を選択します。
日本語になりました。
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(5)
前回までの作業でとりあえず起動するようにはなったのですが、
登録した日本語が文字化するという問題があるので対策をしていきます。
なお、今回はタイトルのとおりLinuxビギナを対象としていて、
コマンドラインからどうこうするのは考えていませんのでご了承ください、
というかコマンドラインからの方法がイマイチ分からないです。
5,Webminの初期設定
先の画面に表示されているWebminのアドレス(http://IPアドレス:12321)をブラウザに入力して接続します。 以下の様に警告画面が出ますが「このまま続行」を押してください。
Webminのログイン画面が表示されますので、インストール時に設定した情報でログインします。
画面左上のメニューバーより「Webmin」-「Webmin Configuration」を選択します。
「Language」を選択します。
Webmin Language で「Japanese (JA_JP.UTF-8)」を選択して、「Change Language」を選択します。
日本語になりました。
次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(5)
Linuxビギナでも30分で始められるRedMine+Mercurial(3)
Linuxビギナでも30分で始められるRedMine+Mercurial(2) の続き
4, 初期設定
Ubuntuのrootパスワードを設定
確認のためもう一度入力
MySQLのrootパスワードを設定
確認のためもう一度入力
有償機能のキーを聞いてくるので、とりあえずエンター
更新を設定するか聞いてくるので、Tabキーで「Skip」を選択してエンター
ちなみにここで「Install」を選択すると、色々更新されるようです。
以上でインストールが完了し、RedMineが設定された仮想マシンが起動します。
この状態で以下のアプリケーションが使えるようになっています。
表示されているアドレスをブラウザに入力すると、RedMineの初期画面が表示されます。
ただ、この状態ではMySQLが初期状態のままで、日本語のプロジェクト名やチケットを登録すると文字化けするので、それの対策を行います。
区切りがいいので次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(4)
4, 初期設定
Ubuntuのrootパスワードを設定
確認のためもう一度入力
MySQLのrootパスワードを設定
確認のためもう一度入力
有償機能のキーを聞いてくるので、とりあえずエンター
更新を設定するか聞いてくるので、Tabキーで「Skip」を選択してエンター
ちなみにここで「Install」を選択すると、色々更新されるようです。
以上でインストールが完了し、RedMineが設定された仮想マシンが起動します。
この状態で以下のアプリケーションが使えるようになっています。
RedMine | プロジェクト管理(TiDD) |
Web In A Shell | ブラウザ版シェル(コマンドプロンプトみたいなもの) |
Webmin | ブラウザからUbuntuを管理するもの |
SubVersion | バージョン管理 |
Git | バージョン管理 |
Bazaar | バージョン管理 |
Mercurial | バージョン管理 |
表示されているアドレスをブラウザに入力すると、RedMineの初期画面が表示されます。
ただ、この状態ではMySQLが初期状態のままで、日本語のプロジェクト名やチケットを登録すると文字化けするので、それの対策を行います。
区切りがいいので次へ
Linuxビギナでも30分で始められるRedMine+Mercurial(4)
登録:
投稿 (Atom)