2017-09-27 85 views
0

當我把命令爲什麼我有alembic遷移的問題?

alembic revision --autogenerate -m "Reconciliation and daily amount tables" 

它給我的輸出:

INFO [alembic.runtime.migration] Context impl PostgresqlImpl. 
INFO [alembic.runtime.migration] Will assume transactional DDL. 
ERROR [alembic.util.messaging] Can't locate revision identified by '67ad9835cada' 
    FAILED: Can't locate revision identified by '67ad9835cada' 

如果我嘗試使用sudo,我有:

sudo: alembic: command not found 

但是當我嘗試pip install alembic - 它告訴我該要求已經滿足。 那麼,這個問題的原因是什麼?

+1

嘗試pip2安裝alembic,python3可能是您的Linux版本的默認設置。 – CodeLikeBeaker

+0

@CodeLikeBeaker謝謝你,但我解決了我的問題:我不應該在使用alembic時使用'sudo',因爲它然後嘗試在全局中查找命令,但是我在虛擬env中工作,所以在我的情況下,問題與alembic修訂:在我的數據庫中'alembic_version'我有關於一些修訂,我可能刪除(也許)的信息。所以我只是清理那張桌子並進行修改。 – Klimenkomud

+0

@Klimenkomud嘿,你能將這個問題標記爲已解決嗎? (回答你自己的問題)謝謝 – Ehvince

回答

1

問題與修訂,它不位於修訂腳本目錄中。如果以某種方式丟失了一些版本 - 您可以使用命令alembic stamp 67ad9865deca,其中67ad9865deca版本標識符(對於您的數據庫而言是修訂版本的頭)(意思是如果您有更高版本並且您不想進行遷移)。或者在數據庫中清理tabla alembic_version,在這種情況下,您會告訴alembic您尚未進行任何遷移。