diff options
| author | Derek Anderson <public@kered.org> | 2007-08-03 22:38:44 +0000 |
|---|---|---|
| committer | Derek Anderson <public@kered.org> | 2007-08-03 22:38:44 +0000 |
| commit | db79faa3285361e6f6778bfc003edd8844196f7e (patch) | |
| tree | 8a9392f9b2a3079357c44c1b47ae833bc18e376a /django/db/backends/postgresql_psycopg2/base.py | |
| parent | 6aad6a8a48b38f32ca77f758ea5bdc9eb187d96a (diff) | |
schema-evolution:
added "default" support so when you add a not null column to a non-empty table you don't get an sql exception
git-svn-id: http://code.djangoproject.com/svn/django/branches/schema-evolution@5794 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/backends/postgresql_psycopg2/base.py')
| -rw-r--r-- | django/db/backends/postgresql_psycopg2/base.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index d86a5c6d49..7e89d51cd0 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -239,12 +239,14 @@ def get_change_column_name_sql( table_name, indexes, old_col_name, new_col_name, output.append( 'ALTER TABLE '+ quote_name(table_name) +' RENAME COLUMN '+ quote_name(old_col_name) +' TO '+ quote_name(new_col_name) +';' ) return output -def get_change_column_def_sql( table_name, col_name, col_type, null, unique, primary_key ): +def get_change_column_def_sql( table_name, col_name, col_type, null, unique, primary_key, default ): output = [] output.append( 'ALTER TABLE '+ quote_name(table_name) +' ADD COLUMN '+ quote_name(col_name+'_tmp') +' '+ col_type + ';' ) output.append( 'UPDATE '+ quote_name(table_name) +' SET '+ quote_name(col_name+'_tmp') +' = '+ quote_name(col_name) + ';' ) output.append( 'ALTER TABLE '+ quote_name(table_name) +' DROP COLUMN '+ quote_name(col_name) +';' ) output.append( 'ALTER TABLE '+ quote_name(table_name) +' RENAME COLUMN '+ quote_name(col_name+'_tmp') +' TO '+ quote_name(col_name) + ';' ) + if default and str(default) != 'django.db.models.fields.NOT_PROVIDED': + output.append( 'ALTER TABLE '+ quote_name(table_name) +' ALTER COLUMN '+ quote_name(col_name) +' SET DEFAULT '+ quote_name(str(default)) +';' ) if not null: output.append( 'ALTER TABLE '+ quote_name(table_name) +' ALTER COLUMN '+ quote_name(col_name) +' SET NOT NULL;' ) if unique: @@ -252,9 +254,11 @@ def get_change_column_def_sql( table_name, col_name, col_type, null, unique, pri return output -def get_add_column_sql( table_name, col_name, col_type, null, unique, primary_key ): +def get_add_column_sql( table_name, col_name, col_type, null, unique, primary_key, default ): output = [] output.append( 'ALTER TABLE '+ quote_name(table_name) +' ADD COLUMN '+ quote_name(col_name) +' '+ col_type + ';' ) + if default and str(default) != 'django.db.models.fields.NOT_PROVIDED': + output.append( 'ALTER TABLE '+ quote_name(table_name) +' ALTER COLUMN '+ quote_name(col_name) +' SET DEFAULT '+ quote_name(str(default)) +';' ) if not null: output.append( 'ALTER TABLE '+ quote_name(table_name) +' ALTER COLUMN '+ quote_name(col_name) +' SET NOT NULL;' ) if unique: |
