Django - Изменение БД с Sqlite3 на Postgres - нужно ли мне сделать что-то еще, чтобы отразить изменения?
На моем сервере я сменил БД на Postgres с SQlite3. Поскольку это новый сайт и на нем еще нет большого количества данных (кроме тестовых), мне не нужно было делать миграцию БД или как там это еще называется. Я просто изменил settings.DATABASES
, чтобы включить Postgres. Вот мой settings.DATABASES
в settings.py
:
from sys import platform
if platform == 'darwin': # OSX
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR + '/db.sqlite3',
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'pfcbookclub',
'USER': 'admin',
'PASSWORD': 'g&zy8Je!u',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Я разрабатываю на M1, и psycopg2
не работает для меня, сколько бы я ни пытался установить libq
или openssl
с помощью Homebrew на Rosetta, поэтому я решил использовать Sqlite на моем Mac и Postgres на моем сервере.
Теперь, когда я перенес эти изменения с git
на свой сервер, я обновил страницу на своем домене, но все тестовые данные, которые я заполнил в своей базе данных Sqlite3, все еще отображались. Я думал, что она будет пустой, потому что я ничем не заполнял базу данных Postgres и не делал никакой миграции, которая бы преобразовала db.sqlite3
в Postgres.
Это то, что должно было произойти? Если да, то почему?
Если это не то, что должно произойти, я полагаю, что должен перезагрузить gunicorn
или daemon
или nginx
или что-то еще. Что я должен сделать? Почему?