Opened 15 years ago
Closed 15 years ago
#12827 closed (duplicate)
ORA-12899 error with oracle syncdb
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.1 |
Severity: | Keywords: | oracle syncdb | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I pointed settings.py to an Oracle DB and tried to run syncdb for the first time.
Got this error:
cx_Oracle.DatabaseError: ORA-12899: value too large for column "CENTRAL_JACEKF"."AUTH_PERMISSION"."NAME" (actual: 60, maximum: 50) Traceback (most recent call last): File "./manage.py", line 12, in <module> execute_manager(settings) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/__init__.py", line 362, in execute_manager utility.execute() File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/__init__.py", line 303, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/base.py", line 195, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/base.py", line 222, in execute output = self.handle(*args, **options) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/base.py", line 351, in handle return self.handle_noargs(**options) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/commands/syncdb.py", line 99, in handle_noargs emit_post_sync_signal(created_models, verbosity, interactive) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/core/management/sql.py", line 205, in emit_post_sync_signal interactive=interactive) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/dispatch/dispatcher.py", line 166, in send response = receiver(signal=self, sender=sender, **named) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/contrib/auth/management/__init__.py", line 28, in create_permissions defaults={'name': name, 'content_type': ctype}) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/manager.py", line 123, in get_or_create return self.get_query_set().get_or_create(**kwargs) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/query.py", line 335, in get_or_create obj.save(force_insert=True) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/base.py", line 410, in save self.save_base(force_insert=force_insert, force_update=force_update) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/base.py", line 495, in save_base result = manager._insert(values, return_id=update_pk) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/manager.py", line 177, in _insert return insert_query(self.model, values, **kwargs) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/query.py", line 1087, in insert_query return query.execute_sql(return_id) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/sql/subqueries.py", line 320, in execute_sql cursor = super(InsertQuery, self).execute_sql(None) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/models/sql/query.py", line 2369, in execute_sql cursor.execute(sql, params) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/backends/util.py", line 19, in execute return self.cursor.execute(sql, params) File "/usr/local/lib/python2.6/dist-packages/Django-1.1.1-py2.6.egg/django/db/backends/oracle/base.py", line 443, in execute raise e cx_Oracle.DatabaseError: ORA-12899: value too large for column "CENTRAL_JACEKF"."AUTH_PERMISSION"."NAME" (actual: 60, maximum: 50)
Ununtu 9.10. Oracle 10g
Change History (3)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
I changed the column to NVARCHAR(60), but that was not enough. Got another error that required 63 chars. So changing it to NVARCHAR2(63) in the DB via ALTER TABLE allowed me to get past this error.
comment:3 by , 15 years ago
Description: | modified (diff) |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
Reformatted description -- please use WikiFormatting and preview before submitting.
This really has nothing to do with Oracle specifically -- any DB that enforces the defined limit will show the problem. The problem of permission names being rather short is already noted in #8162.
Verified that in the DB the AUTH_PERMISSION.NAME column was created as NVARCHAR2(50). Other rows are present in the table, so it's just one of the default INSERTs that must have blown the limit