1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

[boulder-oracle-sprint] Truncate sequence names with truncate_name

git-svn-id: http://code.djangoproject.com/svn/django/branches/boulder-oracle-sprint@4010 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Boulder Sprinters 2006-11-05 00:22:01 +00:00
parent 125cd04d2b
commit 58f0b44c74

View File

@ -145,6 +145,7 @@ def _get_sql_model_create(model, known_models=set()):
Returns list_of_sql, pending_references_dict
"""
from django.db import backend, get_creation_module, models
from django.db.backends.util import truncate_name
data_types = get_creation_module().DATA_TYPES
opts = model._meta
@ -198,7 +199,8 @@ def _get_sql_model_create(model, known_models=set()):
# To simulate auto-incrementing primary keys in Oracle -- creating primary tables
if (settings.DATABASE_ENGINE == 'oracle') & (opts.has_auto_field):
sequence_statement = 'CREATE SEQUENCE %s_sq;' % opts.db_table
sequence_name = truncate_name('%s_sq' % opts.db_table, backend.get_max_name_length())
sequence_statement = 'CREATE SEQUENCE %s;' % sequence_name
final_output.append(sequence_statement)
trigger_statement = '' + \
'CREATE OR REPLACE trigger %s_tr\n' % opts.db_table + \
@ -206,7 +208,7 @@ def _get_sql_model_create(model, known_models=set()):
' for each row\n' + \
' when (new.id is NULL)\n' + \
' begin\n' + \
' select %s_sq.NEXTVAL into :new.id from DUAL;\n' % opts.db_table + \
' select %s.NEXTVAL into :new.id from DUAL;\n' % sequence_name + \
' end;\n'
final_output.append(trigger_statement)