Create Unique field in Codeigniter DBForge Migration

codeigniter, codeigniter-2, dbforge, migration

Solution

There is not an option to do that in the database driver.

either write the SQL to create the table manually, or (and this isn't what i would recommend) change the DB_forge.php and your database driver. (eg mysql_forge.php) to have unique keys. looking at the code i guess you would just have a class variable called 'unique_keys' and follow the code where 'keys', and 'primary keys' are to add unique keys in.

another option is to use the dbforge as written, then just modifiy the table after creation

$this->db->query('ALTER TABLE `financial_year` ADD UNIQUE INDEX (`financial_year`)');

Problem

How can I make the `financial_year` field as unique using `Codeigniter Dbforge` migration? ``` function up() { $this->dbforge->add_field(array( 'id' => array( 'type' => 'INT', 'constraint' => 11, 'unsigned' => TRUE, 'auto_increment' => TRUE ), 'financial_year' => array( 'type' => 'VARCHAR', 'constraint' => 20 ), 'start_date' => array( 'type' => 'DATE' ), 'end_date' => array( 'type' => 'DATE' ), 'status' => array( 'type' => "ENUM", 'constraint' => "'Active','Inactive'", 'default' => "Active" ), 'created_on' => array( 'type' => 'TIMESTAMP' ) )); $this->dbforge->add_key('id', TRUE); // add `id` as primary key $this->dbforge->create_table('financial_year'); // create table schema } ```

Original source