我傾向於使用'遷移'腳本,這是從簡單的版本化腳本開始的下一個階段。通過遷移,您可以指定對數據庫所做的更改(添加,刪除等)以及如何撤消遷移正在執行的更改。然後用一個不會與其他開發人員衝突的某種形式的版本標記。一個特別好的版本號是當前時間(以YYYYMMDDHHMMSS格式或者距離紀元秒)。這是一個不錯的選擇,因爲您不太可能發生版本衝突,並且由於此類時間戳的嚴格增長性質,仍然很容易發現是否存在新版本。
注意:這受到Rails中的遷移系統的很大影響。對於更多細節和想法,我強烈建議查看該系統。
的Rails遷移:
class CreateGroups < ActiveRecord::Migration
def self.up
create_table :groups do |t|
t.string :name
t.references :owner
t.timestamps
end
end
def self.down
drop_table :groups
end
end
主義遷移:
class CreateGroups extends Doctrine_Migration
{
public function up()
{
// Create new author table
$columns = array('id' => array('type' => 'integer',
'length' => 4,
'autoincrement' => true),
'name' => array('type' => 'string',
'length' => 255),
'owner_id' => array('type' => 'integer',
'length' => 4));
$this->createTable('groups', $columns, array('primary' => array('id')));
}
public function down()
{
$this->dropTable('groups');
}
}
(對不起,缺乏學說時間戳的......在軌道中的時間戳呼叫created_at和的updated_at字段的表補充說,是自動爲你管理的,我不確定在教條中有類似的行爲,所以我把它們排除在外)。
如果我不僅限於1人,我會贊成18次:D – whaley 2009-10-28 17:41:33
讓你的奶奶投票然後:)更嚴肅地說,很高興你覺得它有幫助。 – 2009-10-28 17:52:55
感謝您的鏈接。希望3條規則中的項目#1有更多細節。它是我們現在正在努力的東西。說起來容易做起來難。 – CodingWithSpike 2009-10-28 18:20:43