Skip to content

Commit

Permalink
Merge pull request django-extensions#174 from chrisspen/master
Browse files Browse the repository at this point in the history
Fixed PostgreSQL support in sqlcreate management command
  • Loading branch information
trbs committed Feb 17, 2012
2 parents 0bfc2d1 + 642700c commit 8eea4da
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions django_extensions/management/commands/sqlcreate.py
@@ -1,9 +1,19 @@
from optparse import make_option
import sys

import django
from django.core.management.base import NoArgsCommand, CommandError
from django.core.management.base import CommandError, BaseCommand
from django.conf import settings
import sys

class Command(NoArgsCommand):
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option('-R', '--router', action='store',
dest='router', default=None,
help='Use this router-database other then defined in settings.py'),
make_option('-D', '--drop', action='store_true',
dest='drop', default=False,
help='If given, includes commands to drop any existing user and database.'),
)
help = """Generates the SQL to create your database for you, as specified in settings.py
The envisioned use case is something like this:
Expand Down Expand Up @@ -33,7 +43,7 @@ def set_db_settings(**options):
# settings are set for django < 1.2 no modification needed
return True

def handle_noargs(self, **options):
def handle(self, *args, **options):

if django.get_version() >= "1.2":
got_db_settings = self.set_db_settings(**options)
Expand All @@ -60,9 +70,12 @@ def handle_noargs(self, **options):
print "GRANT ALL PRIVILEGES ON %s.* to '%s'@'%s' identified by '%s';" % (
dbname, dbuser, dbhost, dbpass)
elif engine == 'postgresql_psycopg2':
print "CREATE USER %s WITH ENCRYPTED PASSWORD '%s';" % (dbuser, dbpass)
if options.get('drop'):
print "DROP DATABASE IF EXISTS %s;" % (dbname,)
print "DROP USER IF EXISTS %s;" % (dbuser,)
print "CREATE USER %s WITH ENCRYPTED PASSWORD '%s' CREATEDB;" % (dbuser, dbpass)
print "CREATE DATABASE %s WITH ENCODING 'UTF-8' OWNER \"%s\";" % (dbname, dbuser)
#print "GRANT ALL PRIVILEGES ON DATABASE %s TO %s" % (dbname, dbuser)
print "GRANT ALL PRIVILEGES ON DATABASE %s TO %s;" % (dbname, dbuser)
elif engine == 'sqlite3':
sys.stderr.write("-- manage.py syncdb will automatically create a sqlite3 database file.\n")
else:
Expand Down

0 comments on commit 8eea4da

Please sign in to comment.