読者です 読者をやめる 読者になる 読者になる

manage.py syncdb したら, no such table と言われた時に確認すること

django

syncdb したあとにアプリが起動しなくてあせった。
app/migration ディレクトリを削除して, 再度syncdb したら起動した。

south のよくある使い方stackoverflow に乗ってたので転載。

1. Grap any SQLite GUI tool (i.e. http://sqliteadmin.orbmu2k.de/)
2. Change your model definition to match database definition (best approach is to comment new fields)
3. Delete migrations folder in your model
4. Delete rows in south_migrationhistory table where app_name match your application name (probably homework)
5. Invoke: ./manage.py schemamigration <app_name> --initial
6. Create tables by ./manage.py migrate <app_name> --fake (--fake will skip SQL execute because table already exists in your database)
7. Make changes to your app's model
8. Invoke ./manage.py schemamigration <app_name> --auto
9. Then apply changes to database: ./manage.py migrate <app_name>

http://stackoverflow.com/questions/12784835/django-no-such-table