Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.0

Search User Guide

# Класс миграций

Миграции — это удобный путь изменять структуру и организацию вашей базы данных. Вы можете редактировать фрагменты SQL руками, но тогда вы должны нести ответственность за других разработчиков, сказав им, что они должны идти и запускать их. Вы также должны отслеживать изменения, необходимые при следующем развертывании.

Таблица базы данных migration отслеживает, какие миграции произошли, так что все, что вам надо будет сделать, это обновить файлы вашего приложения и вызвать $this->migrate->current() чтобы запустить миграции. Текущая версия находится в config/migration.php.

## Создание миграции

Это будет первой миграцией для нового сайта, который имеет блог. Все миграции сохраняются в директорию 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 для обновления схемы.

    $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 | Нет | Текущая версия, которую должна использовать БД.
migration_path | APPPATH.'migrations/' | Нет | Путь к директориям миграций.

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter