Как запустить многократный перенос файла в CodeIgniter одновременно?

1

Я создаю мигрировать, и сначала таблица выглядит нормально, но когда я создал вторую миграцию, нет ошибки, но таблица не создается.

Я назвал свой класс миграции 2 следующим:

001_inititial_schema.php
002_create_table_quotation_header.php

Первый содержит следующее:

class Migration_Initial_Schema extends CI_Migration {

    public function up() {

        $this->dbforge->add_field(array(

            'id' => array(
                'type' => 'int',
                'constraint' => 11,
                'unsigned' => true,
                'auto_increment' => true
            ),

            'project_name' => array(
                'type' => 'varchar',
                'constraint' => 100,
            ),

            'description' => array(
                'type' => 'text'
            ),

            'date_created' => array(
                'type' => 'datetime',
            ),

            'date_updated' => array(
                'type' => 'datetime',
            ),

            'status' => array(
                'type' => 'tinyint',
                'default' => 1
            ),

        ));

        $this->dbforge->add_key('id', TRUE);
        $this->dbforge->create_table('flx_project');

    }

    public function down() {
        $this->dbforge->drop_table('flx_project');
    }


}

Затем второй:

    class CreateTableQuotationHeader extends CI_Migration {

    public function up() {

        $this->dbforge->add_field(array(

            'id' => array(
                'type' => 'int',
                'constraint' => 11,
                'unsigned' => true,
                'auto_increment' => true
            ),

            'project_id' => array(
                'type' => 'int',
                'constraint' => 11,
                'unsigned' => true,
            ),

            'receiver' => array(
                'type' => 'varchar',
                'constraint' => 100,
            ),

            'address' => array(
                'type' => 'text',
            ),

            'attention' => array(
                'type' => 'varchar',
                'constraint' => 100
            ),

            'reference_number' => array(
                'type' => 'varchar',
                'constraint' => 50
            ),

            'date_issued' => array(
                'type' => 'date'
            )

        ));

        $this->dbforge->add_key('id', TRUE);
        $this->dbforge->create_table('flx_project_header');

    }

    public function down() {
        $this->dbforge->drop_table('flx_project_header');
    }


}

Тогда в моем контроллере:

<?php

class Migrate extends CI_Controller {

    public function __construct() {
        parent::__construct(0);
        $this->load->library('migration');
    }

    public function index() {

        $this->load->helper('template');

        if(!$this->migration->current()) {
            show_error($this->migration->error_string());
        } else {
            $data['message'] = 'migrate success';
        }

        renderPage('common/migrate', $data);

    }

}

?>
  • 1
    Попробуйте изменить имя класса, чтобы оно имело префикс Migration_ как в первом файле.
  • 0
    Я пытаюсь заменить префикс, но все еще только 1 таблица создана
Показать ещё 1 комментарий
Теги:
database
codeigniter
migration

1 ответ

2
Лучший ответ

Хорошо, я решил, что проблема в том, что я сделал, - я включаю только миграцию только в 1 файл. Но я не знаю, является ли это правильным способом для запуска миграции с несколькими таблицами.

<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Migration_Initial_Schema extends CI_Migration {

    public function up() {

        $this->dbforge->add_field(array(

            'id' => array(
                'type' => 'int',
                'constraint' => 11,
                'unsigned' => true,
                'auto_increment' => true
            ),

            'project_name' => array(
                'type' => 'varchar',
                'constraint' => 100,
            ),

            'description' => array(
                'type' => 'text'
            ),

            'date_created' => array(
                'type' => 'datetime',
            ),

            'date_updated' => array(
                'type' => 'datetime',
            ),

            'status' => array(
                'type' => 'tinyint',
                'default' => 1
            ),

        ));

        $this->dbforge->add_key('id', TRUE);
        $this->dbforge->create_table('flx_project');

        $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('flx_project');
        $this->dbforge->drop_table('blog');
    }


}

?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню