<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 遷移類 遷移是一種非常方便的途徑來組織和管理你的數據庫變更,當你編寫了一小段 SQL 對數據庫做了修改之后,你就需要告訴其他的開發者他們也需要運行這段 SQL , 而且當你將應用程序部署到生產環境時,你還需要記得對數據庫已經做了哪些修改, 需要執行哪些 SQL 。 在 CodeIgniter 中,**migration**?表記錄了當前已經執行了哪些遷移,所以 你需要做的就是,修改你的應用程序文件然后調用$this->migration->current()?方法遷移到當前版本,當前版本可以在?**application/config/migration.php**?文件中進行設置。 * [遷移文件命令規則](http://codeigniter.org.cn/user_guide/libraries/migration.html#id2) * [創建一次遷移](http://codeigniter.org.cn/user_guide/libraries/migration.html#id3) * [使用范例](http://codeigniter.org.cn/user_guide/libraries/migration.html#id4) * [遷移參數](http://codeigniter.org.cn/user_guide/libraries/migration.html#id5) * [類參考](http://codeigniter.org.cn/user_guide/libraries/migration.html#id6) ## [遷移文件命令規則](http://codeigniter.org.cn/user_guide/libraries/migration.html#id7) 每個遷移都是根據文件名中的數字順序向前或向后運行,有兩種不同的數字格式: * **序列格式:**?每個遷移文件以數字序列格式遞增命名,從?**001**?開始,每個數字都需要占三位, 序列之間不能有間隙。(這是 CodeIgniter 3.0 版本之前的命令方式) * **時間戳格式:**?每個遷移文件以創建時間的時間戳來命名,格式為:**YYYYMMDDHHIISS**?(譬如:?**20121031100537**),這種方式可以避免在團隊環境下以序列命名可能造成的沖突,而且也是 CodeIgniter 3.0 之后版本中推薦的命名方式。 可以在?application/config/migration.php?文件中的?$config['migration_type']?參數設置命名規則。 無論你選擇了哪種規則,將這個數字格式作為遷移文件的前綴,并在后面添加一個下劃線, 再加上一個描述性的名字。如下所示: * 001_add_blog.php (sequential numbering) * 20121031100537_add_blog.php (timestamp numbering) ## [創建一次遷移](http://codeigniter.org.cn/user_guide/libraries/migration.html#id8) 這里是一個新博客站點的第一次遷移的例子,所有的遷移文件位于?**application/migrations/**?目錄, 并命名為這種格式:20121031100537_add_blog.php?。 ~~~ <?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->add_key('blog_id', TRUE); $this->dbforge->create_table('blog'); } public function down() { $this->dbforge->drop_table('blog'); } } ~~~ 然后在?**application/config/migration.php**?文件中設置:$config['migration_version']?=?20121031100537; ## [使用范例](http://codeigniter.org.cn/user_guide/libraries/migration.html#id9) 在這個例子中,我們在?**application/controllers/Migrate.php**?文件中添加如下的代碼來更新數據庫: ~~~ <?php class Migrate extends CI_Controller { public function index() { $this->load->library('migration'); if ($this->migration->current() === FALSE) { show_error($this->migration->error_string()); } } } ~~~ ## [遷移參數](http://codeigniter.org.cn/user_guide/libraries/migration.html#id10) 下表為所有可用的遷移參數。 | 參數 | 默認值 | 可選項 | 描述 | | --- | --- | --- | --- | | **migration_enabled** | FALSE | TRUE / FALSE | 啟用或禁用遷移 | | **migration_path** | APPPATH.'migrations/' | None | 遷移目錄所在位置 | | **migration_version** | 0 | None | 當前數據庫所使用版本 | | **migration_table** | migrations | None | 用于存儲當前版本的數據庫表名 | | **migration_auto_latest** | FALSE | TRUE / FALSE | 啟用或禁用自動遷移 | | **migration_type** | 'timestamp' | 'timestamp' / 'sequential' | 遷移文件的命名規則 | ## [類參考](http://codeigniter.org.cn/user_guide/libraries/migration.html#id11) classCI_Migration current() 返回: TRUE if no migrations are found, current version string on success, FALSE on failure 返回類型: mixed 遷移至當前版本。(當前版本通過?application/config/migration.php?文件的?$config['migration_version']?參數設置) error_string() 返回: Error messages 返回類型: string 返回遷移過程中發生的錯誤信息。 find_migrations() 返回: An array of migration files 返回類型: array 返回?**migration_path**?目錄下的所有遷移文件的數組。 latest() 返回: Current version string on success, FALSE on failure 返回類型: mixed 這個方法和?current()?類似,但是它并不是遷移到?$config['migration_version']?參數所對應的版本,而是遷移到遷移文件中的最新版本。 version($target_version) 參數: * **$target_version**?(mixed) -- Migration version to process 返回: TRUE if no migrations are found, current version string on success, FALSE on failure 返回類型: mixed 遷移到特定版本(回退或升級都可以),這個方法和?current()?類似,但是忽略?$config['migration_version']?參數,而是遷移到用戶指定版本。 ~~~ $this->migration->version(5); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看