django makemigrations和heroku服务器上的迁移不会创建表

时间:2016-07-12 13:34:23

标签: python django database heroku

Python版本2.7 Django版本1.9.7

我在heroku上创建了一个Django应用程序。我无法正确地将heroku服务器送到frame1.Source = new Uri("Name.xaml", UriKind.RelativeOrAbsolute); 。在过去,我已在本地完成了所有frame1.Content,然后将它们推送到服务器。它过去曾奏效。现在我想我会选择在服务器端进行全部迁移,因为我根本没有在本地运行这个应用程序。

我刚刚在<?xml version="1.0" encoding="UTF-8"?> <!--This file is NOT compatible with Silverlight--> <Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform"> <Canvas Name="svg2" Width="744.09448819" Height="1052.3622047"> <Canvas.RenderTransform> <TranslateTransform X="0" Y="0"/> </Canvas.RenderTransform> <Canvas.Resources/> <Canvas Name="layer1"> <Rectangle xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Canvas.Left="137.14285" Canvas.Top="169.50507" Width="182.85715" Height="320" Name="rect3336" Fill="#FF0000FF" StrokeThickness="1" Stroke="#FF000000" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat"/> </Canvas> </Canvas> </Viewbox> 内为app'main'创建了一个新模型:

migrate

将更改推送到服务器后,我运行了这个,输出如下:

makemigrations
  

在⬢上运行python manage.py makemigrations main   glacial-beach-50253 ... up,run.8354'main'的迁移:
  的 0001_initial.py:        - 创建模型InstagramPhotos

好像对不对?那么我尝试models.py如你所知,它实际上会在数据库中创建表格:

from __future__ import unicode_literals

from django.db import models

class InstagramPhotos(models.Model):
    imageId = models.IntegerField()
    userId = models.IntegerField()
    likes = models.IntegerField()
    captionText = models.CharField(max_length=200)
    image = models.ImageField()
  

在⬢冰川海滩-50253上运行python manage.py migrate ...向上,   run.7556要执行的操作:应用所有迁移:auth,   contenttypes,admin,sessions运行迁移:没有迁移到   应用。您的模型的更改尚未反映在   迁移,因此将不会应用。运行'manage.py makemigrations'   进行新的迁移,然后重新运行'manage.py migrate'进行申请   它们。

无论我多次尝试重新运行heroku run python manage.py makemigrations main 然后migrate,它似乎仍然无法重新启动它。不知道为什么会发生这种情况除了以这种方式无法在heroku服务器上运行之外?我当然需要在本地进行heroku run python manage.py migrate 推送吗?

仅供参考我只是在makemigrations中定义了默认的sqlite3数据库。

3 个答案:

答案 0 :(得分:8)

我遇到了类似的问题。

我只是ssh进入heroku dyno: heroku run bash(来自您的heroku应用程序文件夹ofc)

如果需要,使用createsuperuser运行所有migration和makemigration命令。 与我一起使用sqlite和postgre。

答案 1 :(得分:1)

  1. 在本地运行这些命令

python manage.py makemigrations ,, Python manage.py migration

2。提交您的代码

3。将其推送到heroku主机

  1. 运行## convert date columns date_cols <- c("dob", "employment_dte", "firstfunding_dte", "minAccounting_dte") # convert date columns in DD/MM/YYYY format date_cols <- na.omit(names(sample_dt)[ sample_dt[1, sapply(.SD, stringr::str_detect, pattern = "\\d{2}/\\d{2}/\\d{4}"),]]) # use lubridate package sample_dt[, (date_cols) := lapply(.SD, lubridate::dmy), .SDcols = date_cols]

您的问题应该得到解决

答案 2 :(得分:0)

在部署到Heroku时,我两次遇到相同的错误。在app目录下列出文件时,我发现缺少 db.sqlite3 文件,这对于django创建sql表是必需的。虽然它会自动在本地创建文件,但运行迁移命令时并没有在heroku上创建文件。

这里有两个选项:

  1. 在heroku的应用目录下创建db.sqlite3文件
  2. 在本地运行“ python manage.py migration”以创建db.sqlite3并将其推送到 heroku回购