Клонированный проект Django не дает таблиц после миграции

Я клонировал проект, который хочу изменить и поэкспериментировать с ним, и у меня есть все необходимые учетные данные. Однако, выполняя шаги, описанные в файле ReadMe.md, я столкнулся с проблемами:

  1. Клонируйте проект.

  2. Создайте файл .env и добавьте в него следующую информацию:

    • Переменные базы данных:

      • DATABASE_NAME: Имя базы данных

      • DATABASE_USER: Пользователь базы данных

      • DATABASE_PASSWORD: Пароль базы данных

      • DATABASE_HOST: Хост базы данных

      • DATABASE_PORT: Порт базы данных

    • Переменные аутентификации для Telnyx API:

      • Telnyx_v2_key: Telnyx API v2 key

      • x-api-token: Telnyx API v1 token

      • x-api-user: Электронная почта пользователя Telnyx API v2

  3. Создайте виртуальную среду: python -m venv ./venv

  4. Активируйте среду: source venv_telnyx-invoicing/bin/activate.csh

  5. Установите требования: pip install -r requirements.txt

  6. Создайте каталог журналов: mkdir logs

  7. Создайте миграции: python manage.py makemigrations

  8. Мигрировать: python manage.py migrate

В настоящее время я застрял на этапе миграции. Когда я пытаюсь запустить python manage.py makemigrations, я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:\Users\DominykasPavlijus\Desktop\Telnyx-Invoicing-1\venv\Lib\site-packages\django\db\backends\utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.UndefinedTable: relation "Project_tenant" does not exist
LINE 1: ...nant"."id", "Project_tenant"."billing_group" FROM "Project_t...

Мой файл settings.py, похоже, настроен правильно:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DATABASE_NAME'),
        'USER': os.getenv('DATABASE_USER'),
        'PASSWORD': os.getenv('DATABASE_PASSWORD'),
        'HOST': os.getenv('DATABASE_HOST'),
        'PORT': os.getenv('DATABASE_PORT'),
    }
}

Вот модель, которая вызывает проблему:

from django.db import models
from cgi import print_exception
from enum import unique
from unicodedata import name

    class Tenant(models.Model):
        billing_group = models.CharField(max_length=200)

    def __str__(self):
        return str(self.billing_group)

Я пытался просмотреть руководства, но ничего не показалось правильным, makemigrations не создает таблицы в моей базе данных, дайте мне знать, если я что-то упускаю при первом клонировании, может быть, шаг или что-то еще?

В этом проекте нет никаких файлов или папок миграции, и вот как выглядит моя папка проекта:

Projects folder

Единственный способ, при котором миграции работают без ошибок, я имею в виду, это если я получу резервную копию производства и загружу ее в мой pgadmin....

попробуйте с этим туто:)

Необходимые условия Команда py должна указывать на python3

py -V

3.10.0

postgresql 16+ должен быть запущен на вашей машине с помощью pg_ctl status (Windows), или pgrep -l postgres (Mac), или sudo systemctl status postgresql (Linux)

Git

Создайте новую папку mkdir ваш проект && cd ваш проект Добавьте .gitignore и запустите git Добавьте следующий .gitignore

.venv *.sqlite3 pycache. Добавьте папку в git git init git add . && git commit -m «first commit» Создайте виртуальное окружение для Python и активируйте его py -m venv .venv source .venv/bin/activate Установите django и драйвер pg py -m pip install django psycopg2-binary Соберите скелет django Ниже «core» означает ядро нашего приложения, «.» означает сборку скелета внутри текущей папки :

django-admin startproject core . git add . && git commit -m «django first files»

Change settings.py

Внутри файла settings.py добавьте localhost в список разрешенных хостов, вот так :

ALLOWED_HOSTS = ['localhost', '127.0.0.1']
And database settings like this :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'webplus',
        'USER': 'webplususer',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

ОБНОВЛЕНИЕ: Пройдя все руководства и собрав информацию, я обнаружил, что единственный способ работать без ошибок - это выполнить следующие шаги:

Пошаговое описание того, что я сделал:

  1. В git bash я заполнил эти команды, чтобы во всех папках была папка migrations с файлом init.py в ней:

    mkdir -p callrates/migrations && touch callrates/migrations/init.py`

    mkdir -p phoneNumbers/migrations && touch phoneNumbers/migrations/init.py

    mkdir -p Project/migrations && touch Project/migrations/init.py

    mkdir -p reports/migrations && touch reports/migrations/init.py

    mkdir -p users/migrations && touch users/migrations/init.py

2. Затем я сделал миграции, пропуская проверки, что в итоге дало мне таблицы.

python manage.py makemigrations --skip-checks
python manage.py migrate --skip-checks

3. После этого я сделал фальшивую миграцию

python manage.py migrate --fake

4. И после этого, чтобы убедиться, я выполнил миграцию следующим образом:

python manage.py makemigrations
python manage.py migrate

Я понимаю, что таблицы изначально были пустыми, что, вероятно, не было идеальным решением, но для меня это сработало. Позже я импортировал данные в каждую таблицу, и теперь все работает так, как ожидалось.

Вернуться на верх