[CentralOH] Django, South, and PostgreSQL

Brian Costlow brian.costlow at gmail.com
Mon Oct 14 18:43:22 CEST 2013


Disclaimer.

I've not used South on a multiple db setup, but does it honor database
routers when doing migrations? If so, did you define one (because otherwise
I think things happen to the 'default' db by default.)

https://docs.djangoproject.com/en/dev/topics/db/multi-db/

In which case your syncdb in line 4 may have built the table for that model
in sqllite



On Mon, Oct 14, 2013 at 10:48 AM, Mark Aufdencamp <mark at aufdencamp.com>wrote:

> Hi All,
>
> I'm hoping for a little help in getting my Django tables created in
> Postgres with South.   I've outlined my steps below.
>
> Any ideas on why my table isn't being created?
>
> Postgres use access rights?
>
> A problem with South and Django's multiple database adapters?
>
> Missing something?
>
> TIA
> Mark Aufdencamp
>
>
> Steps for implementation:
>
> 1. I've created a database and role in Postgres.
>
> createuser -U postgres cloudonyms -P
> createdb -U postgres -E utf8 -O cloudonyms cloudonyms -T postgistemplate
> psql -U postgres cloudonyms -c "GRANT ALL ON ALL TABLES IN SCHEMA public
> TO cloudonyms;"
> psql -U postgres cloudonyms -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA
> public TO cloudonyms;"
> psql -U postgres cloudonyms -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA
> public TO cloudonyms;"
>
>
> 2. I've configured my setting.py in Django with the database connection
> info.
>
> DATABASES = {
>     'default': {
>         'ENGINE': 'django.db.backends.sqlite3', # Add
> 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
>         #'NAME':
> '/Users/maaufden/Documents/Aptana-RadRails-Workspace/cloudonyms/sqlite.db',
>                      # Or path to database file if using sqlite3.
>          'NAME': os.path.join( PROJECT_DIR, 'sqlite.db'),
>       # Or path to database file if using sqlite3.
>        # The following settings are not used with sqlite3:
>         'USER': '',
>         'PASSWORD': '',
>         'HOST': '',                      # Empty for localhost through
> domain sockets or '127.0.0.1' for localhost through TCP.
>         'PORT': '',                      # Set to empty string for
> default.
>     },
>     'cloudonyms': {
>         'ENGINE': 'django.db.backends.postgresql_psycopg2',
>         'NAME': 'cloudonyms',
>         'USER': 'cloudonyms',
>         'PASSWORD': 'network-man',
>         'HOST': '',                      # Empty for localhost through
> domain sockets or '127.0.0.1' for localhost through TCP.
>         'PORT': '',                      # Set to empty string for
> default.
>     },
> }
> SOUTH_DATABASE_ADAPTERS = {'cloudonyms':'south.db.postgresql_psycopg2'}
>
>
> 3. I've created an app and model in Django.
>
> python manage.py startapp networks
>
> networks/models.py
> from django.db import models
>
> # Create your models here.
> class Networks(models.Model):
>     title = models.CharField(max_length=100)
>     state = models.CharField(max_length=100)
>     icon = models.CharField(max_length=255)
>     disconnectedIconClass = models.CharField(max_length=40)
>     connectedIconClass = models.CharField(max_length=40)
>
>
> 4. I've run manage.py dbsync
>
> python manage.py syncdb
>
>
> 5. I've created an initial south migration and have a db.create_table in
> the forward function.
>
> python manage.py schemamigration networks --initial
>
>
> 6. When I try to migrate, the table doesn't get created in Postgres
>
> python manage.py migrate networks
>
> Running migrations for networks:
> - Nothing to migrate.
>  - Loading initial data for networks.
> Installed 0 object(s) from 0 fixture(s)
>
>
> 7. If I give the Postgres Role createdb permissions, manage.py test will
> run.
>
> psql -U postgres -d cloudonyms
> ALTER ROLE cloudonyms WITH CREATEDB;
> python manage.py test
>
>
>
>
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> https://mail.python.org/mailman/listinfo/centraloh
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/centraloh/attachments/20131014/6137d30d/attachment.html>


More information about the CentralOH mailing list