目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于CodeIgniter安装下载 CodeIgniter安装指导从老版本升级疑难解答介绍开始CodeIgniter 是什么?CodeIgniter 速记表支持特性应用程序流程图模型-视图-控制器架构目标教程内容提要加载静态内容创建新闻条目读取新闻条目结束语常规主题CodeIgniter URL控制器保留字视图模型辅助函数使用 CodeIgniter 类库创建你自己的类库使用 CodeIgniter 适配器创建适配器创建核心系统类钩子 - 扩展框架的核心自动装载资源公共函数URI 路由错误处理缓存调试应用程序以CLI方式运行管理应用程序处理多环境PHP替代语法安全开发规范类库参考基准测试类日历类购物车类配置类Email 类加密类文件上传类表单验证详解FTP 类图像处理类输入类Javascript 类语言类装载类迁移类输出类分页类模板解析器类安全类Session 类HTML 表格类引用通告类排版类单元测试类URI 类User-Agent 类表单验证XML-RPC 和 XML-RPC 服务器Zip 编码类缓存适配器适配器参考适配器数据库类Active Record 类数据库缓存类自定义函数调用数据库配置连接你的数据库数据库快速入门例子代码字段数据数据库维护类查询辅助函数数据库类查询生成查询记录集表数据事务数据库工具类JavaScript类辅助函数参考数组辅助函数CAPTCHA 辅助函数Cookie Helper日期辅助函数目录辅助函数下载辅助函数Email 辅助函数文件辅助函数表单辅助函数HTML辅助函数Inflector 辅助函数语言辅助函数数字辅助函数路径辅助函数安全辅助函数表情辅助函数字符串辅助函数文本辅助函数排版辅助函数URL 辅助函数XML 辅助函数
文字

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

迁移类

迁移是一种结构化与有组织的方式来更改数据库的方便方法。你可以手动编辑 SQL 的片段,然后告知其他开发人员他们需要运行这些片段。你还得保持追踪他们的变化,追踪那些下次部署时那些需要运行但是会与生产设备冲突的变化。

数据库表的 迁移 追踪那些已经运行的迁移信息,你需要做的就是更新你的应用文件并执行 $this->migrate->current() 来计算出哪个迁移信息是需要被运行的。迁移信息的当前版本可以在这里 config/migration.php 找到。

创建一个迁移信息

这将是一个 blog 站点的第一个迁移信息。所有的迁移信息都在文件夹 application/migrations/ 里,并且具有这样的名称,例如:001_add_blog.php.

defined('BASEPATH') OR exit('No direct script access allowed');

class Migration_Add_blog extends CI_Migration {

  public function up()
  {
    $this->dbforge->add_field(array(
      'blog_id' => array(
        'type' => 'INT',
        'constraint' => 5,
        'unsigned' => TRUE,
        'auto_increment' => TRUE
      ),
      'blog_title' => array(
        'type' => 'VARCHAR',
        'constraint' => '100',
      ),
      'blog_description' => array(
        'type' => 'TEXT',
        'null' => TRUE,
      ),
    ));
    
    $this->dbforge->create_table('blog');
  }

  public function down()
  {
    $this->dbforge->drop_table('blog');
  }

然后在文件 application/config/migration.php 中设置 $config['migration_version'] = 1;

使用范例

在该范例中,一些简单的代码被放置在 application/controllers/migrate.php 以更新架构(schema)。

$this->load->library('migration');

if ( ! $this->migration->current())
{
  show_error($this->migration->error_string());
}

方法参考

$this->migration->current()

当前的迁移信息是什么,被设置于 $config['migration_version'] 在文件 application/config/migration.php 中。

$this->migration->latest()

这个工作的和 current() 很像,但是不会从 $config['migration_version'] 寻找迁移信息,而是在文件系统中寻找最新的迁移信息。

$this->migration->version()

迁移版本可以用来回滚或前进到特定版本。它工作起来像是 current() 但是会忽略 $config['migration_version'] 的设置。

$this->load->library('migration');

$this->migration->version(5);

迁移参数

以下是迁移类的配置选项列表。

参数 默认值 可选项 描述
migration_enabled FALSE TRUE / FALSE 启用或禁用迁移。
migration_version 0 None 当前数据库所使用的版本。
migration_path APPPATH.'migrations/' None 迁移信息所在路径。

 

翻译贡献者: Hex, huboo
最后修改: 2012-03-01 09:28:35
上一篇:下一篇: