#25813: models.py by 'inspectdb' command gives me error
-------------------------------------+-------------------------------------
Reporter: GarlicDipping | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution:
Keywords: indpectdb, MySQL | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by GarlicDipping):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Old description:
> Hi, I'm currently using Django with MySQL and having some trouble with
> models.py generated by inspectdb command.
>
> So, DDL First :
>
> {{{
> CREATE TABLE YDB_Collects (
> COriginal_Data_Type_ID VARCHAR(16) NOT NULL,
> CTask_Name VARCHAR(16) NOT NULL,
> PRIMARY KEY (COriginal_Data_Type_ID, CTask_Name),
> INDEX FK_COLLECTS_TASK (CTask_Name),
> CONSTRAINT FK_COLLECTS_ORIGINAL_DATA_TYPE FOREIGN KEY
> (COriginal_Data_Type_ID) REFERENCES YDB_Original_Data_Type
> (Original_Data_Type_ID),
> CONSTRAINT FK_COLLECTS_TASK FOREIGN KEY (CTask_Name) REFERENCES
> YDB_Task (Task_Name)
> )
> }}}
>
> And Django's 'inspectdb' command gave me this model :
>
> {{{
> class YdbCollects(models.Model):
> coriginal_data_type = models.ForeignKey('YdbOriginalDataType',
> db_column='COriginal_Data_Type_ID') # Field name made lowercase.
> ctask_name = models.ForeignKey('YdbTask', db_column='CTask_Name') #
> Field name made lowercase.
>
> class Meta:
> managed = False
> db_table = 'ydb_collects'
> unique_together = (('COriginal_Data_Type_ID', 'CTask_Name'),)
>
> }}}
>
> And when I run 'makemigrations' command, It gives me error message :
> 'unique-together refers to the non-existent field
> 'COriginal_Data_Type_ID' and 'CTask_Name'.
>
> When I change
>
> {{{
> unique_together = (('COriginal_Data_Type_ID', 'CTask_Name'),)
> }}}
>
> Into
>
> {{{
> unique_together = (('coriginal_data_type ', 'ctask_name'),)
> }}}
>
> then It goes OK but is this correct way to go?
>
> Seems like code below has different schema from my DDL...Original foreign
> key I defined was id of data type, not data type itself.
>
> Did I do something wrong here? Why does unique_together() has column
> names? Every Django models generated with MySQL's ''PRIMARY_KEY(Key1,
> Key2, ...)'' gives me this error!
New description:
Hi, I'm currently using Django with MySQL and having some trouble with
models.py generated by inspectdb command.
So, DDL First :
{{{
CREATE TABLE YDB_Collects (
COriginal_Data_Type_ID VARCHAR(16) NOT NULL,
CTask_Name VARCHAR(16) NOT NULL,
PRIMARY KEY (COriginal_Data_Type_ID, CTask_Name),
INDEX FK_COLLECTS_TASK (CTask_Name),
CONSTRAINT FK_COLLECTS_ORIGINAL_DATA_TYPE FOREIGN KEY
(COriginal_Data_Type_ID) REFERENCES YDB_Original_Data_Type
(Original_Data_Type_ID),
CONSTRAINT FK_COLLECTS_TASK FOREIGN KEY (CTask_Name) REFERENCES
YDB_Task (Task_Name)
)
}}}
And Django's 'inspectdb' command gave me this model :
{{{
class YdbCollects(models.Model):
coriginal_data_type = models.ForeignKey('YdbOriginalDataType',
db_column='COriginal_Data_Type_ID') # Field name made lowercase.
ctask_name = models.ForeignKey('YdbTask', db_column='CTask_Name') #
Field name made lowercase.
class Meta:
managed = False
db_table = 'ydb_collects'
unique_together = (('COriginal_Data_Type_ID', 'CTask_Name'),)
}}}
And when I run 'makemigrations' command, It gives me error message :
'unique-together refers to the non-existent field 'COriginal_Data_Type_ID'
and 'CTask_Name'.
When I change
{{{
unique_together = (('COriginal_Data_Type_ID', 'CTask_Name'),)
}}}
Into
{{{
unique_together = (('coriginal_data_type ', 'ctask_name'),)
}}}
then It goes OK but is this correct way to go?
Seems like code below has different schema from my DDL...Original foreign
key I defined was id of data type, not data type itself.
Did I do something wrong here? Why does unique_together() has column name,
not field names? Every Django models generated with MySQL's
''PRIMARY_KEY(Key1, Key2, ...)'' gives me this error!
--
--
Ticket URL: <https://code.djangoproject.com/ticket/25813#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/071.b2e4e99e99d263a622df61557bec6a5f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.