| | 261 | def get_change_table_name_sql( table_name, old_table_name ): |
|---|
| | 262 | return ['ALTER TABLE '+ quote_name(old_table_name) +' RENAME TO '+ quote_name(table_name) + ';'] |
|---|
| | 263 | |
|---|
| | 264 | def get_change_column_name_sql( table_name, indexes, old_col_name, new_col_name, col_def ): |
|---|
| | 265 | # mysql doesn't support column renames (AFAIK), so we fake it |
|---|
| | 266 | # TODO: only supports a single primary key so far |
|---|
| | 267 | pk_name = None |
|---|
| | 268 | for key in indexes.keys(): |
|---|
| | 269 | if indexes[key]['primary_key']: pk_name = key |
|---|
| | 270 | output = [] |
|---|
| | 271 | output.append( 'ALTER TABLE '+ quote_name(table_name) +' CHANGE COLUMN '+ quote_name(old_col_name) +' '+ quote_name(new_col_name) +' '+ col_def + ';' ) |
|---|
| | 272 | return output |
|---|
| | 273 | |
|---|
| | 274 | def get_change_column_def_sql( table_name, col_name, col_type, null, unique, primary_key ): |
|---|
| | 275 | output = [] |
|---|
| | 276 | col_def = col_type +' '+ ('%sNULL' % (not null and 'NOT ' or '')) |
|---|
| | 277 | if unique: |
|---|
| | 278 | col_def += ' '+ 'UNIQUE' |
|---|
| | 279 | if primary_key: |
|---|
| | 280 | col_def += ' '+ 'PRIMARY KEY' |
|---|
| | 281 | output.append( 'ALTER TABLE '+ quote_name(table_name) +' MODIFY COLUMN '+ quote_name(col_name) +' '+ col_def + ';' ) |
|---|
| | 282 | return output |
|---|
| | 283 | |
|---|
| | 284 | def get_add_column_sql( table_name, col_name, col_type, null, unique, primary_key ): |
|---|
| | 285 | output = [] |
|---|
| | 286 | field_output = [] |
|---|
| | 287 | field_output.append('ALTER TABLE') |
|---|
| | 288 | field_output.append(quote_name(table_name)) |
|---|
| | 289 | field_output.append('ADD COLUMN') |
|---|
| | 290 | field_output.append(quote_name(col_name)) |
|---|
| | 291 | field_output.append(col_type) |
|---|
| | 292 | field_output.append(('%sNULL' % (not null and 'NOT ' or ''))) |
|---|
| | 293 | if unique: |
|---|
| | 294 | field_output.append(('UNIQUE')) |
|---|
| | 295 | if primary_key: |
|---|
| | 296 | field_output.append(('PRIMARY KEY')) |
|---|
| | 297 | output.append(' '.join(field_output) + ';') |
|---|
| | 298 | return output |
|---|
| | 299 | |
|---|
| | 300 | def get_drop_column_sql( table_name, col_name ): |
|---|
| | 301 | output = [] |
|---|
| | 302 | output.append( 'ALTER TABLE '+ quote_name(table_name) +' DROP COLUMN '+ quote_name(col_name) + ';' ) |
|---|
| | 303 | return output |
|---|
| | 304 | |
|---|
| | 305 | |
|---|