- def change_column(table_name, column_name, type, options = {})
- unless options_include_default?(options)
- options[:default] = select_one("SHOW COLUMNS FROM #{table_name} LIKE '#{column_name}'")["Default"]
+ def myisam_table
+ return { :id => false, :force => true, :options => ""}
+ end
+
+ def innodb_table
+ return { :id => false, :force => true, :options => ""}
+ end
+
+ def innodb_option
+ return ""
+ end
+
+ def change_engine (table_name, engine)
+ end
+
+ def add_fulltext_index (table_name, column)
+ execute "CREATE INDEX #{table_name}_#{column}_idx on #{table_name} (#{column})"
+ end
+
+ def enumerations
+ @enumerations ||= Hash.new
+ end
+
+ def create_enumeration(enumeration_name, values)
+ enumerations[enumeration_name] = values
+ execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
+ end
+
+ def drop_enumeration(enumeration_name)
+ execute "DROP TYPE #{enumeration_name}"
+ enumerations.delete(enumeration_name)
+ end
+
+ def rename_enumeration(old_name, new_name)
+ execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
+ end
+
+ def alter_primary_key(table_name, new_columns)
+ execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{table_name}_pkey"
+ execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns.join(',')})"
+ end