Jar*_*ier 0 php database codeigniter
我正在寻找能够在各种环境中正确处理项目的mysql表更新的想法.我看了CI DB Forge上课,我相信这可能对我有所帮助.我的想法是:
这是正确的想法吗?这与Magento如何处理每个扩展的数据库升级非常相似.
听起来你正在寻找Migrations类.这是一个相当新的库,我认为此时的文档并不太好.
如果您启用此库application/config/migrations.php并加载它,它将创建一个名为的数据库表migrations.从那里的工作流程如下:
application/migrations确保用顺序编号的文件名命名001_some_descriptive_name.php.格式很重要,正好是3个数字,_后面至少有一个.001_some_descriptive_name.php应该保存一个调用的类Migration_Some_descriptive_name并扩展CI_Migration该类.类名外壳是很重要的,第一Migration_,然后一个大写字母小写,然后.up公共down方法和公共方法$this->db->query()调用.如果你需要支持多个数据库系统,Dbforge更便携,可能更好用.down方法内部添加可以反转效果的代码up.如果up添加一列,down则应删除该列,如果up创建表,down则应删除该表,依此类推.migration_version将迁移配置文件内部.$this->migration->current()它将检查migration数据库表中的版本并运行迁移类up或down方法,以便在步骤6中设置的配置文件中访问迁移版本.例如,如果数据库说你处于第2版,以及配置说,你应该是5,那么它将运行up的迁移的方法有003_...,004_...,005_..以文件名.如果设置较小的数字,则down调用方法的当前值.数据库从0开始计数,因此不要创建000_...文件.如果您有冒险精神,可以创建一个挂钩来加载迁移类并get_instance()->migration->latest()在每个页面加载时运行,这样一旦部署新的迁移类,每个环境都会自动更新数据库.
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |