45 lines
1.2 KiB
ReStructuredText
45 lines
1.2 KiB
ReStructuredText
sqlcreate
|
|
==========
|
|
|
|
:synopsis: Helps you setup your database(s) more easily
|
|
|
|
|
|
Introduction
|
|
-------------
|
|
|
|
Stop creating databases by hand. Your settings.py file already contains the correct
|
|
information, so DRY.
|
|
|
|
Usage
|
|
-------------
|
|
|
|
$ python manage.py sqlcreate [--router=<routername>] | <my_database_shell_command>
|
|
|
|
It will spit out SQL which you can review (if you want) but ultimately you want to
|
|
pipe it into the database shell command of your choice.
|
|
|
|
If there was a good way to ensure that the user in the database settings had the
|
|
proper permissions, we could submit the commands straight to the database.
|
|
But due to the nature of this portion of the project setup, that will never happen.
|
|
|
|
Example
|
|
-------------
|
|
|
|
PostgreSQL
|
|
~~~~~~~~~~
|
|
$ ./manage.py sqlcreate [--router=<routername>] | psql -U <db_administrator> -W
|
|
|
|
|
|
MySQL
|
|
~~~~~
|
|
$ ./manage.py sqlcreate [--router=<routername>] | mysql -u <db_administrator> -p
|
|
|
|
|
|
Known Issues
|
|
------------
|
|
|
|
* CREATE DATABASE is not SQL standard so might not work everywhere.
|
|
* When using fallback user is not created and password is not set.
|
|
But it does try to do a GRANT to the database user.
|
|
* Missing options for tablespaces, etc.
|
|
|