1
1
"""Database models."""
2
2
from __future__ import absolute_import , unicode_literals
3
- import logging
3
+
4
4
from datetime import timedelta
5
5
import dateutil
6
6
@@ -49,9 +49,11 @@ def _is_mysql_backend(self, connection):
49
49
50
50
def _create_sql (self , model , schema_editor , using = '' ):
51
51
sql_create_index = 'CREATE INDEX %(name)s ON %(table)s (%(columns)s(%(size)d))%(extra)s'
52
- sql_parameters = super (CeleryMySQLIndex , self ).create_sql (model , schema_editor , using = using )
53
- logging .warning ('creat index content - {c}' .format (c = sql_parameters ))
54
- print (sql_parameters )
52
+ sql_parameters = self .get_sql_create_template_values (
53
+ model ,
54
+ schema_editor ,
55
+ using
56
+ )
55
57
sql_parameters ['size' ] = getattr (
56
58
settings ,
57
59
'DJANGO_CELERY_BEAT_NAME_MAX_LENGTH' ,
@@ -66,6 +68,22 @@ def create_sql(self, model, schema_editor, using=''):
66
68
else :
67
69
return super (CeleryMySQLIndex , self ).create_sql (model , schema_editor , using = using )
68
70
71
+ def get_sql_create_template_values (self , model , schema_editor , using ):
72
+ fields = [model ._meta .get_field (field_name ) for field_name , order in self .fields_orders ]
73
+ tablespace_sql = schema_editor ._get_index_tablespace_sql (model , fields )
74
+ quote_name = schema_editor .quote_name
75
+ columns = [
76
+ ('%s %s' % (quote_name (field .column ), order )).strip ()
77
+ for field , (field_name , order ) in zip (fields , self .fields_orders )
78
+ ]
79
+ return {
80
+ 'table' : quote_name (model ._meta .db_table ),
81
+ 'name' : quote_name (self .name ),
82
+ 'columns' : ', ' .join (columns ),
83
+ 'using' : using ,
84
+ 'extra' : tablespace_sql ,
85
+ }
86
+
69
87
70
88
@python_2_unicode_compatible
71
89
class SolarSchedule (models .Model ):
0 commit comments