Django переключается с sqlite3 на Postgresql - PullRequest
0 голосов
/ 21 марта 2012

Я недавно изменил сервер баз данных в своем проекте с sqlite3 на Postgresql, и у меня есть несколько вопросов, которые, я надеюсь, дадут ответ на мои вопросы.

  1. Я понимаю, чтопереход с sqlite на Postgres подразумевает, что я создаю новую базу данных и таблицы внутри нее, верно?Я сделал это, но я не видел никаких новых файлов, созданных в моем проекте, чтобы показать мне, что база данных, которую я создал, видна.(Кстати, я изменил имя базы данных в settings.py)

  2. Я, вероятно, должен упомянуть, что я работаю в виртуальной среде, и я хотел бы знать, влияет ли это на мойссылки никак.Я попытался импортировать таблицы в Django, чтобы попытаться подсчитать количество записей в таблице, но я получаю сообщение об ошибке: «Нет модуля с именем psdemo».(psdemo - это имя моей базы данных, и я пытаюсь импортировать таблицу с:

    from ps.psdemo import Product
    

    , где ps - мое приложение, psdemo - моя база данных и Product таблица в базе данных.

В заключение я пытаюсь получить доступ к своей базе данных и таблицам, но мне не удается их найти. Повторяю, в моем проекте или в моей виртуальной среде нет нового файла базы данных (яЯ провел тщательный поиск) но если я использую терминальное соединение, я могу подключиться к своей виртуальной среде и изменить каталоги, чтобы попасть в папку приложения, тогда, если я подключусь к серверу Postgresql, я могу создать базу данных, таблицы и вставить в них, сделатьзапросы и т.д., но я не могу получить к ним доступ из кода Django.

Ответы [ 3 ]

2 голосов
/ 21 марта 2012

Я понимаю, что переход с sqlite на Postgres подразумевает, что я создаю новую базу данных и таблицы внутри нее, верно?Я сделал это, но я не видел никаких новых файлов, созданных в моем проекте, чтобы показать мне, что база данных, которую я создал, видна.(Кстати, я изменил имя базы данных в settings.py)

Все, что вам нужно сделать с postgres, - это создать базу данных.Не столы.Django создаст, создаст таблицы, и все, что он посчитает полезным, после вызова syncdb.

У вас не будет новых файлов в вашем проекте, как в sqlite.Если вы хотите просмотреть свою базу данных, вам следует скачать и установить pgadminIII (который я рекомендовал бы в любом случае)

Я, вероятно, должен упомянуть, что я работаю в виртуальной среде, и я хотел бызнаю, влияет ли это на мои ссылки каким-либо образом.Я попытался импортировать таблицы в Django, чтобы попытаться подсчитать количество записей в таблице, но я получаю сообщение об ошибке: «Нет модуля с именем psdemo».(psdemo - это имя моей базы данных, и я пытаюсь импортировать таблицу с помощью:

Здесь вы импортируете модели с помощью обычного синтаксиса Python, а затем ссылаетесь на ваши таблицы. Каждая модель должна представлять одну таблицу.Сначала вы определяете свои модели, а затем звоните

python manage.py syncdb

В заключение я пытаюсь получить доступ к своей базе данных и таблицам, но мне не удается их найти.

См. Выше, но вы обязательно должны прочитать об установке postgres из документации postgres и прочитать документы psycopg2, а также документы Django для настройки базы данных postgres.

2 голосов
/ 21 марта 2012

Я понимаю, что переход с sqlite на Postgres означает, что я создать новую базу данных и таблицы внутри нее, верно? я сделал это, но я не видел никаких новых файлов, созданных в моем проекте, чтобы показать мне что база данных, которую я сделал, видна. (Кстати, я изменил имя базы данных в settings.py)

Файлы базы данных не создаются в каталоге проекта с postgresql. Они создаются в каталоге данных сервера базы данных (например, / var / lib / postgres зависит от дистрибутива). Как правило, вы должны запрашивать его через клиент PostgreSQL, который подключается к серверу PostgreSQL, а не связываться с файлами напрямую.

Вы можете, например, запустить команду:

manage.py dbshell
0 голосов
/ 21 марта 2012

Что касается вашей первой проблемы, см. Ответ @ jpic.

По второму вопросу ваша база данных не является пакетом, и вы не импортируете модели из своей базы данных. Если вы смогли правильно импортировать свои модели, прежде чем вносить какие-либо изменения, верните свои операторы импорта обратно в прежнее состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...