annuaire recherche
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于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 辅助函数
personnages

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
Article précédent: Article suivant: