Я лучше всего работаю со скриптами 'миграции', которые являются следующим этапом по сравнению с простым версионным скриптом. При миграции вы указываете изменения в базе данных (добавления, удаления и т. Д.), А также способы отмены изменений, выполняемых вашей миграцией. Затем он помечается версией какой-либо формы, которая не будет конфликтовать с другими разработчиками. Особенно хорошим номером версии является текущее время (в формате ГГГГММДДЧЧММСС или в секундах от эпохи). Это хороший выбор, потому что вы вряд ли столкнетесь с версиями, и все еще очень легко увидеть, существуют ли новые версии из-за строго возрастающего характера таких временных отметок.
Примечание. Это очень сильно зависит от системы миграции в 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');
}
}
(извините за отсутствие временных меток в доктрине ... в rails вызов временных меток добавляет в таблицы поля create_at и updated_at, которые автоматически управляются для вас. Я не уверен в сходном поведении в доктрине, поэтому я их пропустил ).