options
Returns a hash of all the options this script takes. (See the usage message for details)
run
Prints a help message if the users want it. If not, goes about its business.
Sets up the environment, checks current database state, creates or deletes a database as necessary and then creates or updates your models' schema.
setup_environment
Sets up a minimal Jifty environment.
print_help
Prints out help for the package using pod2usage.
If the user specified --help, prints a brief usage message
If the user specified --man, prints out a manpage
prepare_model_classes
Reads in our application class from the config file, sets up a schema generator and finds all our app's models.
probe_database_existence
Probes our database to see if it exists and is up to date.
create_all_tables
Create all tables for this application's models. Generally, this happens on installation.
upgrade_jifty_tables
Upgrade Jifty's internal tables.
upgrade_application_tables
Upgrade the application's tables.
upgrade_tables BASECLASS, FROM, TO, [UPGRADECLASS]
Given a BASECLASS
to upgrade, and two version objects, FROM
and TO
, performs the needed transforms to the database. UPGRADECLASS
, if not specified, defaults to BASECLASS
::Upgrade
manage_database_existence
If the user wants the database created, creates the database. If the user wants the old database deleted, does that too.
NAME
Jifty::Script::Schema - Create SQL to update or create your Jifty app's tables
SYNOPSIS
jifty schema --setup Creates or updates your application's database tables
Options:
--print Print SQL, rather than executing commands
--setup Upgrade or install the database, creating it if need be
--create-database Only creates the database
--drop-database Drops the database
--help brief help message
--man full documentation
OPTIONS
-
Rather than actually running the database create/update/drop commands, Prints the commands to standard output
- --create-database
-
Send a CREATE DATABASE command. Note that --setup, below, will automatically send a CREATE DATABASE if it needs one. This option is useful if you wish to create the database without creating any tables in it.
- --drop-database
-
Send a DROP DATABASE command. Use this in conjunction with --setup to wipe and re-install the database.
- --setup
-
Actually set up your app's tables. This creates the database if need be, and runs any commands needed to bring the tables up to date; these may include CREATE TABLE or ALTER TABLE commands. This option is assumed if the database does not exist, or the database version is not the same as the application's version.
- --help
-
Print a brief help message and exits.
- --man
-
Prints the manual page and exits.
DESCRIPTION
Looks for all model classes of your Jifty application and generates SQL statements to create or update database tables for all of the models. It either prints the SQL to standard output (--print) or actually issues the CREATE TABLE
or ALTER TABLE
statements on Jifty's database.
(Note that even if you are just displaying the SQL, you need to have correctly configured your Jifty database in ProjectRoot/etc/config.yml
, because the SQL generated may depend on the database type.)
BUGS
Due to limitations of DBIx::DBSchema, this probably only works with PostgreSQL, MySQL and SQLite.
It is possible that some of this functionality should be rolled into Jifty::DBI::SchemaGenerator