これに対する統合ソリューションはありますか?
mysql というフォルダを作成し、大きな変更を行うたびにそこに sql をダンプするとうまくいきますか?
Subversion は完璧ですが、db 部分はどのように処理しますか? 誰かがワークフローを説明してください。
ありがとう!
単純なバッチファイルを使用して、DBとの間で変更をエクスポート/インポートしています。次のファイルで追加のフォルダ_dbを作成しました。
import.bat:
if exist c:\mysql\bin\mysql.exe goto work1
exit
:work1
C:\mysql\bin\mysql.exe -u root --default-character-set=utf8<C:\project\_db\dbName_dc.sql
C:\mysql\bin\mysql.exe -u root -D dbName --default-character-set=utf8<C:\project\_db\dbName.sql
pause
exit
export.bat
if exist c:\mysql\bin\mysql.exe goto work1
exit
:work1
C:\mysql\bin\mysqldump.exe -u root --default-character-set=utf8 dbName>C:\project\_db\dbName.sql
C:\mysql\bin\mysqldump.exe -u root -d --default-character-set=utf8 dbName>C:\project\_db\dbName_struct.sql
pause
exit
dbName_dc.sql
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
DROP DATABASE IF EXISTS `dbName`;
CREATE DATABASE `dbName`;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
UNIXライクなシステム用に同様のファイルを作成することは問題ではありません。
Ruby on Railsは、移行と呼ばれる手法を使用して、データベーススキーマの変更を追跡します。名前の付いたファイルが自動的に作成されますdevelopment_structure.sql
(存在しない場合は、たとえばrake db:structure:dumpを呼び出すことで作成できます)。大きな変更を加えるたびにこのファイルをSVNで送信またはチェックインする場合は、データベースの変更をSVNに保存していることになります。これには、次のようなCREATETABLEコマンドが含まれています。
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
..
)
Scott Ambler と ThoughtWorks がアジャイル データベースについて行ったことについて読んで、あなたの考えを確認してください。