摘要: 我正在遵循南教程。 我更改了一個models.py文件,但是當我運行「migrate」時,它不更新psql表。我不知道爲什麼不。南遷移不更新psql表(django)
我編輯投票/ models.py 我加了班,「調查」 我的「問題」是指調查
models.py
我加入了類添加了一行Survey
,我加入這一行的類問題:
survey = models.ForeignKey(Survey)
其餘所有已經存在(基本上按照Django的教程)
import datetime
from django.db import models
from django.utils import timezone
# Create your models here.
### Adding the Survey class just now, to practice using South
class Survey(models.Model):
survey_name = models.CharField(max_length=190)
pub_date = models.DateTimeField('date published')
def __unicode__(self): #__str__ instead of __unicode__ if using Python 3, but unicode for python 2
return self.survey_name
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?' # for admin site
class Question(models.Model):
survey = models.ForeignKey(Survey) ### this is a new line based on adding the Survey class above
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self): #__str__ instead of __unicode__ if using Python 3, but unicode for python 2
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?' # for admin site
class Choice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __unicode__(self):
return self.choice_text
終端
我做schemamigration表示,它加入模型
polls.Survey
(app01)MoriartyMacBookAir13:getstartapp MACUSER $ vim polls/models.py (app01)MoriartyMacBookAir13:getstartapp macuser $ python manage.py schemamigration民意調查--auto 您不能在沒有遷移的應用上使用--auto秒。嘗試 - 初始。 (app01)MoriartyMacBookAir13:getstartapp MACUSER $ sudo的蟒蛇manage.py schemamigration投票--initial
- 新增模型polls.Survey
- 新增模型polls.Question
- 新增模型polls.Choice 創建0001_initial。 PY。現在,您可以將此遷移有:./manage.py遷移投票
我雙重檢查的調查並沒有在PSQL表中存在尚未:
(app01)MoriartyMacBookAir13:getstartapp macuser$ heroku pg:psql
---> Connecting to HEROKU_POSTGRESQL_YELLOW_URL (DATABASE_URL)
psql (9.3.5, server 9.3.3)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
app01::YELLOW=> \d
List of relations
Schema | Name | Type | Owner
--------+--------------------------------------+----------+----------------
public | account_emailaddress | table | aqolirupsmmmqz
public | account_emailaddress_id_seq | sequence | aqolirupsmmmqz
public | account_emailconfirmation | table | aqolirupsmmmqz
public | account_emailconfirmation_id_seq | sequence | aqolirupsmmmqz
public | auth_group | table | aqolirupsmmmqz
public | auth_group_id_seq | sequence | aqolirupsmmmqz
public | auth_group_permissions | table | aqolirupsmmmqz
public | auth_group_permissions_id_seq | sequence | aqolirupsmmmqz
public | auth_permission | table | aqolirupsmmmqz
public | auth_permission_id_seq | sequence | aqolirupsmmmqz
public | auth_user | table | aqolirupsmmmqz
public | auth_user_groups | table | aqolirupsmmmqz
public | auth_user_groups_id_seq | sequence | aqolirupsmmmqz
public | auth_user_id_seq | sequence | aqolirupsmmmqz
public | auth_user_user_permissions | table | aqolirupsmmmqz
public | auth_user_user_permissions_id_seq | sequence | aqolirupsmmmqz
public | discover_author | table | aqolirupsmmmqz
public | discover_author_id_seq | sequence | aqolirupsmmmqz
public | discover_awedio | table | aqolirupsmmmqz
public | discover_awedio_id_seq | sequence | aqolirupsmmmqz
public | discover_user | table | aqolirupsmmmqz
public | discover_user_id_seq | sequence | aqolirupsmmmqz
public | django_admin_log | table | aqolirupsmmmqz
public | django_admin_log_id_seq | sequence | aqolirupsmmmqz
public | django_content_type | table | aqolirupsmmmqz
public | django_content_type_id_seq | sequence | aqolirupsmmmqz
public | django_session | table | aqolirupsmmmqz
public | django_site | table | aqolirupsmmmqz
public | django_site_id_seq | sequence | aqolirupsmmmqz
public | hello_greeting | table | aqolirupsmmmqz
public | hello_greeting_id_seq | sequence | aqolirupsmmmqz
public | polls_choice | table | aqolirupsmmmqz
public | polls_choice_id_seq | sequence | aqolirupsmmmqz
public | polls_question | table | aqolirupsmmmqz
public | polls_question_id_seq | sequence | aqolirupsmmmqz
[other tables, but no more polls tables]
public | south_migrationhistory | table | aqolirupsmmmqz
public | south_migrationhistory_id_seq | sequence | aqolirupsmmmqz
(45 rows)
app01::YELLOW=> \q
- 現在爲了更新並創建polls_survey,我建議運行migrate命令...但是,psql表不會更新。任何建議爲什麼?下面是命令的充分反應:
```
(app01)MoriartyMacBookAir13:getstartapp MACUSER $ sudo的蟒蛇manage.py遷移民調 用於投票運行的遷移: - 沒有遷移。 - 加載民意調查的初始數據。 從0固定裝置(S) (app01)MoriartyMacBookAir13安裝0對象(S):getstartapp MACUSER $ sudo的蟒蛇manage.py執行syncdb 同步... 創建表... 安裝自定義的SQL ... 安裝索引。 .. 從0夾具(一個或多個)
Synced:
> django.contrib.admin
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.messages
> django.contrib.staticfiles
> storages
> evernote
> discover
> hello
> south
> django.contrib.sites
> djrill
> allauth.socialaccount.providers.linkedin
Not synced (use migrations):
- polls
- allauth
- allauth.account
- allauth.socialaccount
- allauth.socialaccount.providers.facebook
(use ./manage.py migrate to migrate these)
(app01)MoriartyMacBookAir13:getstartapp macuser$ sudo python manage.py migrate polls
Running migrations for polls:
- Nothing to migrate.
- Loading initial data for polls.
Installed 0 object(s) from 0 fixture(s)
(app01)MoriartyMacBookAir13:getstartapp macuser$
(app01)MoriartyMacBookAir13:getstartapp macuser$ sudo python manage.py convert_to_south polls
This application is already managed by South.
(app01)MoriartyMacBookAir13:getstartapp macuser$ sudo python manage.py migrate polls
Running migrations for polls:
- Nothing to migrate.
- Loading initial data for polls.
Installed 0 object(s) from 0 fixture(s)
(app01)MoriartyMacBookAir13:getstartapp macuser$ sudo python manage.py schemamigration polls --auto
Nothing seems to have changed.
(app01)MoriartyMacBookAir13:getstartapp macuser$
```
即,polls_survey仍然沒有在PSQL表中存在已安裝的0(多個)對象的,但執行syncdb並遷移都爲無影響...所以psql不反映蟒蛇描述的數據模型...
任何建議我在做什麼錯在這裏?
萬一有用:settings.py文件有我的Heroku psql的登錄信息在裏面,所以我爲什麼能夠成功運行的Heroku PG:psql的命令上面