===== Database =====
==== GIVE FEED BACK ====
Replace "booklink" with your project name wherever it is found. Use the case structure in the example.\\
* Create app/installers/booklink_installer.php.\\
* Enter the table definitions in it.\\
createTable('books', // The table name must be plural.
'id,'. // This key must be in every table.
'col_1 string(10),'. // Columns have default characteristics.
'col_last' // The last column does not end with a "."
);
}
function down_1(){
$this->dropTables('books');
}
}
?>
Simple enough. The column type options are:
* **integer** or **int**
* **float**
* **datetime**, **date**, **timestamp**, **time**
* **text**
* **string**
* **binary**
* **boolean** or **bool**
Or any column type that is supported by the database you’re using, like **varchar** or **smallint** on MySQL.
One warning though: do not use **tinyint** on MySQL because it will be typecasted as //boolean//.
See http://phplens.com/lens/adodb/docs-datadict.htm to customize column options.
* Create the file by entering ''./script/migrate Booklink install''.
* If you are using Subversion:
* Enter ''svn status''
* For each line beginning with a "''?''", enter ''svn add ''
* Enter ''svn commit -m 'create books table' ''. Any comment may follow ''-m''.
==== Additional Database Functions ====
=== Tables ===
modifyTable($table_name, $column_options = null, $table_options = array()\\
No description\\ \\
dropTable($table_name, $options = array())\\
No description\\ \\
dropTables()\\
No description\\ \\
getAvailableTables()\\
No description\\ \\
tableExists($table_name)\\
No description\\ \\
=== Columns ===
addColumn($table_name, $column_details)\\
Adds a new column to the table called $table_name\\ \\
changeColumn($table_name, $column_details)\\
No description\\\ \\
removeColumn($table_name, $column_name)\\
No description\\ \\
renameColumn($table_name, $old_column_name, $new_column_name)\\
No description\\ \\
getDefaultColumnAttributesRules()\\
Returns a key => value pair of regular expressions that will trigger methods
to cast database columns to their respective default values or a replacement expression.\\ \\
=== Indices ===
addIndex($table_name, $columns, $index_name = '')\\
No description\\ \\
removeIndex($table_name, $columns_or_index_name)\\
No description\\ \\
dropIndex($table_name, $columns_or_index_name)\\
No description\\ \\
=== Sequences ===
createSequence($table_name)\\
No description\\ \\
dropSequence($table_name)\\
No description\\ \\
=== Transactions ===
transactionStart()\\
Transaction support for database operations\\ \\
transactionComplete()\\
No description\\ \\
transactionFail()\\
No description\\ \\
transactionHasFailed()\\
No description\\ \\
=== Miscellaneous ===
promptUserVar($message, $options = array()\\
Promts for a variable on console scripts\\ \\
execute($sql)\\
No description\\ \\
debug($toggle = null)\\
No description\\ \\
==== Transactions ====
Transactions are enabled automatically for Installer objects.
You can nest transactions within models.
This transaction is nested. Only the outermost will be executed.
$UserInstalller->transactionStart();
$UserInstalller->addTable('id, name');
if(!isCompatible()){
$User->transactionFail();
}
$User->transactionComplete();