任何人都可以請告訴我如何添加一個新的列類型枚舉到我的模式爲了實現一個原則遷移?遷移過程中添加新的枚舉列
9
A
回答
0
修改您的架構,但不建立模型。運行doctrine schema diff,然後爲你生成一個遷移類。最後,你可以重建你的模型/表格/過濾器
20
修改架構
運行
./symfony doc:generate-migrations-diff
這將產生的lib /遷移/學說的一個或多個文件/
運行
./symfony doc:migrate
這會將生成的遷移應用於數據庫
運行
./symfony doc:build --all-classes
這個作品爲symfony1.2> = 1.3/1.4,並且將根據所述修改過的模式
記住遷移產生比較所述重建的所有形式/濾波器/模型類將新的schema.yml添加到當前的模型類中,因此如果在運行generate-migrations-diff之前重新生成類,那麼就會導致錯誤。
1
快捷鍵:
symfony doctrine:build --all-classes --and-migrate
4
在你需要編寫自己的遷移腳本的情況下,這裏的語法的一個例子 - 我還沒有找到語法正確的說明書中任何地方。
$this->addColumn('tablename', 'column_name', 'enum', false,
array('fixed' => 1,
'values' =>
array(0 => 'auto',
1 => 'manual',
2 => 'unknown'),
'default' => 'unknown',
'notnull' => true,
'length' => NULL,
));
-1
Model:
column:
type: enum
values: [one, two, three]
(optional:)
notnull: false
default: one #or two or three
0
從學說遷移運行它的最簡單方法就是註冊一個新的映射。然後,如果需要,您可以在您的實體內強制執行值。 (Doctrine MySQL Enums)
public function up(Schema $schema)
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
...
}
0
我有同樣的問題,發現一套解決這個標誌ProjectConfiguration.class.php
public function configureDoctrine(Doctrine_Manager $manager) {
$manager->setAttribute(Doctrine_Core::ATTR_USE_NATIVE_ENUM, true);
}
後,我用這個方法調用,並得到原生MySQL的枚舉:
class MyMigration extends Doctrine_Migration_Base {
public function up() {
$this->changeColumn(self::tableName, 'columName', 'enum', null,
array(
'fixed' => true,
'length' => null,
'notnull' => true,
'values' => array(
0 => 'Option 1',
1 => 'Option 2'
)
)
);
}
相關問題
- 1. Phinx遷移 - 枚舉列與默認值
- 2. 在knex遷移中更新枚舉列類型
- 3. Yii2遷移在表中添加新列
- 4. 實體框架遷移。更新布爾列以枚舉
- 5. 加速枚舉過程
- 6. 添加列的Datamapper遷移
- 7. 如何使字段枚舉遷移yii2
- 8. EF 5.0遷移刪除枚舉
- 9. Rails。遷移枚舉「t.cloumn ...」或「t.integer」?
- 10. 添加枚舉值?
- 11. 如何在Objective C中的typedef枚舉中添加新的枚舉?
- 12. 遷移舊錶結構,新發現的枚舉不工作
- 13. 在枚舉過程中添加和刪除ConcurrentBag的元素
- 14. 添加索引遷移添加列而不是遷移
- 15. 如何添加通過枚舉
- 16. 如何添加枚舉值列出
- 17. JavaPoet添加枚舉常量列表
- 18. 添加新枚舉列到現有的表
- 19. 重新枚舉枚舉
- 20. 實體框架5 - 可擴展枚舉在添加遷移時被忽略
- 21. C++ - 程序中的多枚舉枚舉
- 22. 混淆枚舉...如何更改枚舉過程中的對象?
- 23. 在遷移中添加Id列
- 24. 默認枚舉不添加
- 25. 添加unbounded_Strings來枚舉ada
- 26. 向遷移失敗的數據庫表添加新列 - 無法遷移
- 27. 的EntityFramework添加遷移通過System.Data.SqlServerCe
- 28. Mysql爲數據類型列添加一個新值枚舉
- 29. 重新加載Java枚舉
- 30. 的Rails 3.1添加列與change_table遷移
需要做./symfony doc:generate-migrations-diff首先我想。 – Populus 2011-04-13 08:58:17