summaryrefslogtreecommitdiffstats
path: root/user_guide_src
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-11-12 11:51:14 +0100
committerAndrey Andreev <narf@bofh.bg>2012-11-12 11:51:14 +0100
commitb67277b8063b0e6aab051ce269194255ef83e808 (patch)
treef0ce631b9ee3134de2cf009e4d5f02401f31aaac /user_guide_src
parentb0a97c100f5e7edc5e21ec7d07f768cd3b5618da (diff)
Bring back the AFTER clause for DB Forge add_column()
(it was temporarily removed due to multiple inconsistencies with other drivers) This commit also fixes issue #1988. Also added support for the FIRST clause (again, MySQL and CUBRID only).
Diffstat (limited to 'user_guide_src')
-rw-r--r--user_guide_src/source/changelog.rst3
-rw-r--r--user_guide_src/source/database/forge.rst23
-rw-r--r--user_guide_src/source/installation/upgrade_300.rst32
3 files changed, 52 insertions, 6 deletions
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index f3509d00a..792969cf4 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -168,7 +168,8 @@ Release Date: Not Released
- :doc:`Database Forge <database/forge>` changes include:
- Added an optional second parameter to ``drop_table()`` that allows adding the **IF EXISTS** condition, which is no longer the default.
- Added support for passing a custom database object to the loader.
- - Removed the optional AFTER clause from method ``add_column()``.
+ - Deprecated ``add_column()``'s third method. *AFTER* clause should now be added to the field definition array instead.
+ - Added support for usage of the *FIRST* clause in ``add_column()`` for MySQL and CUBRID.
- Overall improved support for all of the drivers.
- :doc:`Database Utility <database/utilities>` chages include:
- Added support for passing a custom database object to the loader.
diff --git a/user_guide_src/source/database/forge.rst b/user_guide_src/source/database/forge.rst
index de5748b45..ca904ed00 100644
--- a/user_guide_src/source/database/forge.rst
+++ b/user_guide_src/source/database/forge.rst
@@ -231,7 +231,7 @@ Modifying Tables
****************
$this->dbforge->add_column()
-=============================
+============================
The ``add_column()`` method is used to modify an existing table. It
accepts the same field array as above, and can be used for an unlimited
@@ -243,10 +243,25 @@ number of additional fields.
'preferences' => array('type' => 'TEXT')
);
$this->dbforge->add_column('table_name', $fields);
- // gives ALTER TABLE table_name ADD preferences TEXT
+ // Executes: ALTER TABLE table_name ADD preferences TEXT
+
+If you are using MySQL or CUBIRD, then you can take advantage of their
+AFTER and FIRST clauses to position the new column.
+
+Examples::
+
+ // Will place the new column after the `another_field` column:
+ $fields = array(
+ 'preferences' => array('type' => 'TEXT', 'after' => 'another_field')
+ );
+
+ // Will place the new column at the start of the table definition:
+ $fields = array(
+ 'preferences' => array('type' => 'TEXT', 'first' => TRUE)
+ );
$this->dbforge->drop_column()
-==============================
+=============================
Used to remove a column from a table.
@@ -256,7 +271,7 @@ Used to remove a column from a table.
$this->dbforge->modify_column()
-================================
+===============================
The usage of this method is identical to ``add_column()``, except it
alters an existing column rather than adding a new one. In order to
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index 2bfb1bdbf..0af21b11e 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -284,4 +284,34 @@ should write '-' instead of 'dash' and '_' instead of 'underscore'.
in CodeIgniter 3.1+.
.. note:: These options are still available, but you're strongly encouraged to remove their usage
- sooner rather than later. \ No newline at end of file
+ sooner rather than later.
+
+Database Forge method add_column() with an AFTER clause
+=======================================================
+
+If you have used the **third parameter** for :doc:`Database Forge <database/forge>` method
+``add_column()`` to add a field for an AFTER clause, then you should change its usage.
+
+That third parameter has been deprecated and scheduled for removal in CodeIgniter 3.1+.
+
+You should now put AFTER clause field names in the field definition array instead::
+
+ // Old usage:
+ $field = array(
+ 'new_field' => array('type' => 'TEXT')
+ );
+
+ $this->dbforge->add_column('table_name', $field, 'another_field');
+
+ // New usage:
+ $field = array(
+ 'new_field' => array('type' => 'TEXT', 'after' => 'another_field')
+ );
+
+ $this->dbforge->add_column('table_name', $field);
+
+.. note:: The parameter is still available, but you're strongly encouraged to remove its usage
+ sooner rather than later.
+
+.. note:: This is for MySQL and CUBRID databases only! Other drivers don't support this
+ clause and will silently ignore it.