【发布时间】:2015-01-19 20:56:43
【问题描述】:
我正在阅读关于 CodeIgniter 的 Forge 类 的 this 文档,我喜欢使用这个类创建新数据库的想法,这很棒我需要的。 我需要的是使用这个 create_database
$this->dbforge->create_database('db_name')
但我想知道 Forge 类 的代码应该去哪里?它应该在其中一个控制器中吗?它有更好的地方吗?这样做的最佳实践在哪里?如果是的话,它应该在库中还是在迁移文件夹中? 向上功能? CodeIgniter 没有在文档中指定!
这是我到目前为止添加的创建表的代码,但是 create_database 函数在哪里?:
<?php
class Migration_Users extends CI_Migration {
public function up(){
$this->dbforge->add_field("`id` int(11) NOT NULL AUTO_INCREMENT");
$this->dbforge->add_field("`role_id` int(11) NOT NULL DEFAULT '2'");
$this->dbforge->add_field("`username` varchar(25) COLLATE utf8_bin NOT NULL UNIQUE");
$this->dbforge->add_field("`password` varchar(1024) COLLATE utf8_bin NOT NULL");
$this->dbforge->add_field("`email` varchar(100) COLLATE utf8_bin NOT NULL UNIQUE");
$this->dbforge->add_field("`banned` tinyint(1) NOT NULL DEFAULT '0'");
$this->dbforge->add_field("`ban_reason` varchar(255) COLLATE utf8_bin DEFAULT NULL");
$this->dbforge->add_field("`newpass` varchar(34) COLLATE utf8_bin DEFAULT NULL");
$this->dbforge->add_field("`newpass_key` varchar(32) COLLATE utf8_bin DEFAULT NULL");
$this->dbforge->add_field("`newpass_time` datetime DEFAULT NULL");
$this->dbforge->add_field("`last_ip` varchar(40) COLLATE utf8_bin NOT NULL");
$this->dbforge->add_field("`last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'");
$this->dbforge->add_field("`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'");
$this->dbforge->add_field("`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP");
$this->dbforge->add_field("`deleted` tinyint(1) NOT NULL DEFAULT '0'");
$this->dbforge->add_key('id', TRUE);
$this->dbforge->create_table('users', TRUE);
}
public function down(){
$this->dbforge->drop_table('users');
}
}
【问题讨论】:
标签: php codeigniter database-migration