前提・実現したいこと
Djangoアプリをherokuにデプロイする為、SqliteからPostgreSQLに移行しています。
デプロイ後アクセスすると、以下のようなエラーが表示されます。
発生している問題・エラーメッセージ
django.db.utils.ProgrammingError: relation "auth_user" does not exist LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
試したこと
① setting.py の ALLOWED_HOSTS = [] にしてローカル動作させると
正常に動作するのを確認しました。
② PostgreSQLのDBを drop database で削除し、再度作成。
makemigrations ⇒ migrate を行いました。マイグレーションは成功していますが
デプロイ、アクセスすると同じエラーが表示されます。
③ PostgreSQLのDB内に auth_user が存在している事を確認しました。
python manage.py migrate auth を実行すると、内容に差異はないと表示されます。
④ Django のsuperuser を設定し忘れているのかと思いましたが、作成しても同じエラーが表示されました。
⑤ Herokuのアプリケーションを何度か削除、作成を繰り返してみましたが同じエラーが表示されました。
調べたが分からない事
https://teratail.com/questions/270985
上記質問のような、アプリを再度作り直したら動作しました。
の”アプリを作り直す”は完全にアプリを削除、1から作成ということでしょうか。
今回のようにアプリを作ってからデプロイする場合は、どうやって作り直せばいいのでしょうか。
補足情報(FW/ツールのバージョンなど)
PostgreSQL 11.2
Python 3.8.5
asgiref==3.2.3
beautifulsoup4==4.9.1
cycler==0.10.0
dj-database-url==0.5.0
Django==3.0.3
django-bootstrap4==2.1.1
django-heroku==0.3.1
gunicorn==20.0.4
kiwisolver==1.1.0
matplotlib==3.2.0
numpy==1.18.1
Pillow==7.2.0
psycopg2==2.8.5
pyparsing==2.4.6
python-dateutil==2.8.1
pytz==2019.3
six==1.14.0
soupsieve==2.0.1
sqlparse==0.3.0
whitenoise==5.1.0
その他必要な情報があれば教えて下さい。
###補足内容画像
psql -U admin -d ****
\d auth_user
の結果
テーブル "public.auth_user" 列 | 型 | 照合順序 | Null 値を許容 | デフォルト --------------+--------------------------+----------+---------------+--------------------------------------- id | integer | | not null | nextval('auth_user_id_seq'::regclass) password | character varying(128) | | not null | last_login | timestamp with time zone | | | is_superuser | boolean | | not null | username | character varying(150) | | not null | first_name | character varying(30) | | not null | last_name | character varying(150) | | not null | email | character varying(254) | | not null | is_staff | boolean | | not null | is_active | boolean | | not null | date_joined | timestamp with time zone | | not null |
models.py
import datetime from django.db import models from django.utils import timezone class Schedule(models.Model): """スケジュール""" summary = models.CharField('概要', max_length=50) description = models.TextField('詳細な説明', blank=True) start_time = models.TimeField('開始時間', default=datetime.time(7, 0, 0)) end_time = models.TimeField('終了時間', default=datetime.time(7, 0, 0)) date = models.DateField('日付') created_at = models.DateTimeField('作成日', default=timezone.now) user_name = models.CharField('登録者', max_length=50) def __str__(self): return self.summary class OptionItems(models.Model): """カレンダーのオプション""" option_time = models.TimeField('1日の開始時間', default=datetime.time(0, 0, 0)) user_name = models.CharField('登録者', max_length=50) class OptionFriend(models.Model): friend_name = models.CharField('フレンド', max_length=50) user_name = models.CharField('登録者', max_length=50) class Group(models.Model): Group_name = models.CharField('グループ名', max_length=50) description = models.TextField('詳細な説明', blank=True) member = models.TextField('メンバー', blank=True) user_name = models.CharField('登録者', max_length=50) class Friend(models.Model): """フレンド""" name = models.CharField(max_length=100) mail = models.EmailField(max_length=200) gender = models.BooleanField() age = models.IntegerField(default=0) birthday = models.DateField() def __str__(self): return '<Friend:id=' + str(self.id) + ',' + self.name + '(' + str(self.age) + ')>'
migrations 0001_initial.py
# Generated by Django 2.1.5 on 2019-01-11 04:04 import datetime from django.db import migrations, models import django.utils.timezone class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Schedule', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('summary', models.CharField(max_length=50, verbose_name='概要')), ('description', models.TextField(blank=True, verbose_name='詳細な説明')), ('start_time', models.TimeField(default=datetime.time(7, 0), verbose_name='開始時間')), ('end_time', models.TimeField(default=datetime.time(7, 0), verbose_name='終了時間')), ('date', models.DateField(verbose_name='日付')), ('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='作成日')), ], ), ]
migrations 0002_auto_20200731.py
# Generated by Django 3.0.3 on 2020-07-31 00:54 import datetime from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('app', '0001_initial'), ] operations = [ migrations.CreateModel( name='Friend', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('mail', models.EmailField(max_length=200)), ('gender', models.BooleanField()), ('age', models.IntegerField(default=0)), ('birthday', models.DateField()), ], ), migrations.CreateModel( name='Group', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('Group_name', models.CharField(max_length=50, verbose_name='グループ名')), ('description', models.TextField(blank=True, verbose_name='詳細な説明')), ('member', models.TextField(blank=True, verbose_name='メンバー')), ('user_name', models.CharField(max_length=50, verbose_name='登録者')), ], ), migrations.CreateModel( name='OptionFriend', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('friend_name', models.CharField(max_length=50, verbose_name='フレンド')), ('user_name', models.CharField(max_length=50, verbose_name='登録者')), ], ), migrations.CreateModel( name='OptionItems', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('option_time', models.TimeField(default=datetime.time(0, 0), verbose_name='1日の開始時間')), ('user_name', models.CharField(max_length=50, verbose_name='登録者')), ], ), migrations.AddField( model_name='schedule', name='user_name', field=models.CharField(default=1, max_length=50, verbose_name='登録者'), preserve_default=False, ), ]
回答3件
あなたの回答
tips
プレビュー