[support] Drupal 7 Schema API / datetime => char?
Tim Gustafson
tjg at soe.ucsc.edu
Wed Jan 18 19:36:43 UTC 2012
So, in the Drupal 6 version of a lot of my modules, I made prodigious use of the datetime column type. Now, Drupal 7 says those pesky data-specific column types are off-limits. I created a hook_update_N function to convert datetime columns into char columns that looks like this:
function hook_update_N() {
db_change_field(
"foo",
"column_1",
"column_1",
array(
"type" => "char",
"length" => 20,
"not null" => true,
"default" => "0000-00-00 00:00:00",
)
);
db_change_field(
"foo",
"column_2",
"column_2",
array(
"type" => "char",
"length" => 20,
"not null" => true,
"default" => "0000-00-00 00:00:00",
)
);
}
And when I run update.php, I now get:
Failed: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'column_2': ALTER TABLE {foo} CHANGE `created_on` `column_1` CHAR(20) NOT NULL DEFAULT '0000-00-00 00:00:00'; Array ( ) in db_change_field() (line 2984 of includes/database/database.inc).
Please not that it's complaining about the default value on column_2 when it's trying to update column_1.
How does one convert a table with two or more datetime columns to char(20) columns in Drupal 7?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Tim Gustafson tjg at soe.ucsc.edu
Baskin School of Engineering 831-459-5354
UC Santa Cruz Baskin Engineering 317B
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
More information about the support
mailing list