Verzeichnis suchen
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
Figuren

迁移是以结构化和有组织的方式更改数据库的一种方便的方式。您可以手工编辑SQL片段,但随后您将负责告诉其他开发人员他们需要去运行它们。您还必须跟踪下次部署时需要针对生产机器运行哪些更改。

数据库表迁移跟踪哪些迁移已经运行,所以您所要做的就是更新应用程序文件并调用$this->migration->current()以确定应该运行哪些迁移。当前版本可在application/config/移入.php...

  • 迁移文件名

  • 创建迁移

  • 使用实例

  • 迁移偏好

  • 类引用

迁移文件名

根据所采用的方法,每个迁移都按数字顺序向前或向后运行。有两种编号样式:

  • 顺序:每个迁移按顺序编号,从001开始。每个数字必须是三位数字,并且序列中不得有空位。(这是CodeIgniter 3.0之前的编号方案。)

  • 时间戳:使用YYYYMMDDHHIISS格式(例如20121031100537)创建迁移时,使用时间戳对每个迁移进行编号。这有助于防止在团队环境中工作时编号冲突,并且是CodeIgniter 3.0及更高版本中的首选方案。

可以使用$config['migration_type']在你的application/config/移入.php档案。

无论您选择使用哪种编号样式,迁移文件的前缀都是迁移号,后面是下划线和迁移的描述性名称。例如:

  • 001_add_blog.php(顺序编号)

  • 20121031100537_add_blog.php(时间戳编号)

创建迁移

这将是一个拥有博客的新网站的首次迁移。所有迁移都在application / migrations /目录中,并具有名称,如20121031100537_add_blog.php

<?phpdefined('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->add_key('blog_id', TRUE);
                $this->dbforge->create_table('blog');        }        
                public function down()        {
                    $this->dbforge->drop_table('blog');        }
                    }

然后进去application/config/移入.php$config['migration_version'] = 20121031100537;...

使用实例

在这个例子中,一些简单的代码放在应用程序/控制器/Migrate.php若要更新架构,请执行以下操作:

<?phpclass Migrate extends CI_Controller{        
        public function index(){
                $this->load->library('migration');                
                if ($this->migration->current() === FALSE)                
                {
                    show_error($this->migration->error_string());}
                }
                }

迁移偏好

下面是用于迁移的所有配置选项的表。

偏好

默认

选项

描述

migration_enabled

真假

启用或禁用迁移。

migration_path

APPPATH.'migrations /”

没有

您的迁移文件夹的路径。

migration_version

0

没有

数据库应该使用的当前版本。

migration_table

迁移

没有

用于存储模式版本号的表名。

migration_auto_latest

真假

启用或禁用自动运行迁移。

MIGRATION_TYPE

“时间戳”

'时间戳'/'顺序'

用于命名迁移文件的数字标识符的类型。

类引用

class CI_Migrationcurrent()

返回:

如果未找到迁移,则为TRUE,成功时为当前版本字符串,失败时为FALSE

返回类型:

mixed

error_string()

返回:

错误消息

返回类型:

find_migrations()

返回:

一组迁移文件

返回类型:

数组

latest()

返回:

成功时的当前版本字符串,失败时为FALSE

返回类型:

mixed

version($target_version)

参数:

$ target_version(混合) - 将迁移版本处理

返回:

如果未找到迁移,则为TRUE,成功时为当前版本字符串,失败时为FALSE

返回类型:

mixed

  • $ target_version混合) - 将迁移版本处理

Returns:  TRUE if no migrations are found, current version string on success, FALSE on failure
Return type:  mixed
版本可用于回滚更改或以编程方式前进到特定版本。它像`current()`一样工作,但忽略`$ config ['migration_version']`。
Vorheriger Artikel: Nächster Artikel: