Я создал файлы миграции в Codeigniter 3 для базы данных, используя библиотеку Migration
, предоставленную CI, и с помощью онлайновых руководств. Мой файл миграции выглядит так,
<?php
class Migration_Leave_tracker extends CI_Migration {
public function up() {
$this->dbforge->add_field(array(
'id' => array(
'type' => 'INT',
'constraint' => 11,
'auto_increment' => TRUE
),
'emp_id' => array(
'type' => 'INT',
'constraint' => 11,
),
'start_date' => array(
'type' => 'DATE',
),
'end_date' => array(
'type' => 'DATE',
),
'created_date' => array(
'type' => 'DATETIME',
),
));
$this->dbforge->add_key('id', TRUE);
$this->dbforge->create_table('leave_tracker');
}
public function down() {
$this->dbforge->drop_table('leave_tracker');
}
}
Здесь вы можете видеть, что мой файл миграции имеет два метода: up()
, который используется для создания таблицы, а другой - down()
, который можно использовать для удаления таблицы.
У меня есть другой контроллер с методом для запуска миграций,
public function migrate($version = null) {
$this->load->library('migration');
if ($version != null) {
if ($this->migration->version($version) === FALSE) {
show_error($this->migration->error_string());
} else {
echo "Migrations run successfully" . PHP_EOL;
}
return;
}
if ($this->migration->latest() === FALSE) {
show_error($this->migration->error_string());
} else {
echo "Migrations run successfully" . PHP_EOL;
}
}
Согласно документации по CI, этот фрагмент кода создаст все миграции, и я предполагаю, что он будет вызывать up()
метод всех классов миграции для создания таблиц.
Теперь мой вопрос: как я могу создать метод, который будет отбрасывать все таблицы в базе данных, используя метод drop()
класса миграции. Я не смог найти ссылки на это в документации.