2015-09-20 46 views
2

我在嘗試修復遷移錯誤的同時壓扁了我的遷移,併產生了第二個令我困惑的錯誤。Django Migrate - 無法找到父節點

當我試圖轉移我的Heroku的數據庫,我得到這個錯誤:

$ heroku run -a agorafund python manage.py migrate 
Running `python manage.py migrate` attached to terminal... up, run.8709 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute 
    output = self.handle(*args, **options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 93, in handle 
    executor = MigrationExecutor(connection, self.migration_progress_callback) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/migrations/executor.py", line 19, in __init__ 
    self.loader = MigrationLoader(self.connection) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/migrations/loader.py", line 47, in __init__ 
    self.build_graph() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/migrations/loader.py", line 294, in build_graph 
    _reraise_missing_dependency(migration, parent, e) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/migrations/loader.py", line 264, in _reraise_missing_dependency 
    raise exc 
django.db.migrations.graph.NodeNotFoundError: Migration nonprofits.0001_initial dependencies reference nonexistent parent node (u'payments', u'0001_squashed_0026_bankaccount') 

底有它說:「最初的依賴性引用不存在的父節點(u'payments',u'0001_squashed_0026_bankaccount')。 「

但該節點顯然存在。我的付款/遷移文件夾中存在「0001_squashed_0026_bankaccount」,並且沒有任何循環依賴關係。 (因此,它開始:)

class Migration(migrations.Migration): 

    replaces = [('payments', '0001_initial'), ('payments', '0002_auto_20150820_2150'), ('payments', '0003_auto_20150823_1507'), ('payments', '0004_auto_20150823_1832'), ('payments', '0005_auto_20150828_1441'), ('payments', '0006_auto_20150828_1559'), ('payments', '0007_remove_product_fee_rate'), ('payments', '0008_product_fee_rate'), ('payments', '0009_remove_product_fee_rate'), ('payments', '0010_recurringpaymentitem'), ('payments', '0010_auto_20150905_2132'), ('payments', '0011_merge'), ('payments', '0012_auto_20150908_2316'), ('payments', '0013_auto_20150910_1517'), ('payments', '0014_paymentitem_recurring'), ('payments', '0015_subscription'), ('payments', '0016_paymentitem_subscription'), ('payments', '0017_userexternalpayconf_livepayment'), ('payments', '0018_auto_20150916_1852'), ('payments', '0019_auto_20150916_1858'), ('payments', '0020_auto_20150916_2210'), ('payments', '0021_auto_20150917_0314'), ('payments', '0022_auto_20150917_1556'), ('payments', '0023_userexternalpayconf_newcreditcard'), ('payments', '0024_auto_20150917_2004'), ('payments', '0025_subscription_paymentitem'), ('payments', '0026_bankaccount')] 

    dependencies = [ 
     ('contenttypes', '0002_remove_content_type_name'), 
     ('auth', '0006_require_contenttypes_0002'), 
     migrations.swappable_dependency(settings.AUTH_USER_MODEL), 
    ] 

同時,非營利組織最初的遷移開始像這樣:

類移民(migrations.Migration):

dependencies = [ 
    ('payments', '0001_squashed_0026_bankaccount'), 
] 

任何想法是怎麼回事?

+0

也有這種遷移('payments','0026_bankaccount')? –

回答

0

刪除遷移(當然在migrations/的一切除了__init__.py當然)爲我解決了這個問題。這個堆棧溢出的建議回答:

If you can't find the missing migration file, you'll have to delete and recreate the migrations for the app, so that they don't depend on the missing migration. https://stackoverflow.com/a/33676462/1762493