2013-01-06 37 views
8

यह मेरा पहला प्रश्न है इसलिए मैं धैर्य की सराहना करता हूं।"पूर्णांक टाइप करने के लिए नहीं डाला जा सकता" त्रुटि

मैंने चार फ़ील्ड से इंटीजरफ़िल्ल्ड में कुछ विशेषताओं को बदल दिया। नीचे सूचीबद्ध कोड है:

rating_choices = (
    (1,"1"), 
    (2,"2"), 
    (3,"3"), 
    (4,"4"), 
    (5,"5"), 
) 

class Rating(models.Model): 
    article = models.ForeignKey(Article,null=True) 
    organization = models.IntegerField(choices=rating_choices, default=1) 
    support = models.IntegerField(choices=rating_choices, default=1) 
    readability = models.IntegerField(choices=rating_choices, default=1) 
    tags = models.IntegerField(choices=rating_choices, default=1) 
    comments = models.TextField() 
    def get_overall_rating(self): 
     return fsum(self.organization + self.support + self.support + self.readability + self.tags)/5.0 
    overall_rating = property(get_overall_rating) 
admin.site.register(Rating) 

मैं पर Postgres विस्थापित करने के लिए एक दक्षिण प्रवास किया था और इस त्रुटि मैं मिलता है:

Error in migration: collect_data:0010_auto__chg_field_rating_tags__chg_field_rating_support__chg_field_ratin 
Traceback (most recent call last): 
    File "manage.py", line 15, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/management/commands/migrate.py", line 108, in handle 
    ignore_ghosts = ignore_ghosts, 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/__init__.py", line 213, in migrate_app 
    success = migrator.migrate_many(target, workplan, database) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 235, in migrate_many 
    result = migrator.__class__.migrate_many(migrator, target, migrations, database) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 310, in migrate_many 
    result = self.migrate(migration, database) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 133, in migrate 
    result = self.run(migration) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 107, in run 
    return self.run_migration(migration) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 81, in run_migration 
    migration_function() 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/migration/migrators.py", line 57, in <lambda> 
    return (lambda: direction(orm)) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellow/jellow/apps/collect_data/migrations/0010_auto__chg_field_rating_tags__chg_field_rating_support__chg_field_ratin.py", line 13, in forwards 
    db.alter_column('collect_data_rating', 'tags', self.gf('django.db.models.fields.IntegerField')()) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/db/generic.py", line 44, in _cache_clear 
    return func(self, table, *args, **opts) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/db/generic.py", line 522, in alter_column 
    flatten(values), 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/south/db/generic.py", line 273, in execute 
    cursor.execute(sql, params) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute 
    return self.cursor.execute(sql, params) 
    File "/Users/narensathiya/Documents/Documents/Jellow/Jellow/jellowenv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute 
    return self.cursor.execute(query, args) 
django.db.utils.DatabaseError: column "tags" cannot be cast to type integer 

किसी भी मदद की बहुत सराहना की जाएगी और अग्रिम धन्यवाद !!

+0

आपकी डेटाबेस में 'tags' स्तंभ में किसी भी आइटम को पहले से ही है कि पूर्णांक के रूप में नहीं हैं ? –

+0

हाँ, वहां होना चाहिए। मैंने कुछ मूल्यों को अक्षर के रूप में सहेजा है। क्या मुझे उस कॉलम को हटाना होगा और इसे रीमेक करना होगा? – Badi8beach

उत्तर

17

अगर आप अपने डेटा फेंक करने के लिए खुश हैं, तो आप स्तंभ को हटा कर एक नया

बनाने आप अपने डेटा रखना चाहते हैं कर सकते हैं, या तो आप

क) अपने नए कॉलम देने की आवश्यकता एक अलग नाम, या
ख) संक्रमण के दौरान डेटा रखने के लिए एक अस्थायी स्तंभ बनाने

आप तो माइग्रेशन की एक दृश्य की जरूरत

  1. नया (या अस्थायी) कॉलम
  2. जोड़ने के लिए एक स्कीमा माइग्रेशन एक डेटा माइग्रेशन जो डेटा को स्पष्ट रूप से स्थानांतरित करता है, किसी भी आवश्यक रूपांतरण (उदा। 'ए' -> 1)
  3. संभवतः एक स्कीमा प्रवास नष्ट करने से आपका अस्थायी स्तंभ
+0

कूल मैंने पहले डेटा माइग्रेशन किया है इसलिए मैं इसे आज़माउंगा! – Badi8beach

1

आप "का उपयोग (COL_NAME :: पूर्णांक)" जोड़ने की जरूरत है इस त्रुटि को खत्म करने। लेकिन उस स्थिति में आपको सीधी क्वेरी का उपयोग करना होगा।

migrateEngine.execute ('परिवर्तन तालिका परीक्षण स्तंभ को बदलने testScore प्रकार पूर्णांक का उपयोग testScore :: पूर्णांक')