Command-line utilities¶
Your ptah application can be controlled and inspected using a variety of command-line utilities. These utilities are documented in this chapter.
Application Settings¶
You can use the ptah-settings
command in a terminal window to print a
summary of settings to your application registered with
ptah.register_settings()
api. Much like the any pyramid
command, the ptah-settings
command accepts one argument with the
format config_file#section_name
. The
config_file
is the path to your application’s .ini
file, and
section_name
is the app
section name inside the .ini
file which
points to your application. By default, the section_name
is main
and
can be omitted.
For example:
1 2 3 4 5 6 7 8 9 10 11 | [fafhrd@... MyProject]$ ../bin/ptah-settings development.ini
* Ptah settings (ptah)
- ptah.secret: Authentication policy secret (TextField: secret-
ptah!)
The secret (a string) used for auth_tkt cookie signing
- ptah.manage: Ptah manage id (TextField: ptah-manage)
...
|
By default ptah-settings
shows all sections. It possible to show
only certain settings section like “ptah” or “format”.
It is possible to print all settings in .ini
format.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [fafhrd@... MyProject]$ ../bin/ptah-settings development.ini -p
[DEFAULT]
format.date_full = "%%A, %%B %%d, %%Y"
format.date_long = "%%B %%d, %%Y"
format.date_medium = "%%b %%d, %%Y"
format.date_short = "%%m/%%d/%%y"
format.time_full = "%%I:%%M:%%S %%p %%Z"
format.time_long = "%%I:%%M %%p %%z"
format.time_medium = "%%I:%%M %%p"
format.time_short = "%%I:%%M %%p"
format.timezone = "us/central"
ptah.disable_models = []
ptah.disable_modules = []
...
ptah.pwd_letters_digits = false
ptah.pwd_letters_mixed_case = false
ptah.pwd_manager = "plain"
ptah.pwd_min_length = 5
|
Application Information¶
You can use the ptah-manage
command in a terminal window to print a
summary of different information of your application. The ptah-manage
command accepts one argument with the format config_file#section_name
.
List management modules¶
Use --list-modules
argument to the ptah-manage
to list all
registered ptah management modules.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [fafhrd@... MyProject]$ ../bin/ptah-manage development.ini --list-modules
* apps: Applications (disabled: False)
A listing of all registered Ptah Applications.
* crowd: User management (disabled: False)
Default user management. Create, edit, and activate users.
* fields: Field types (disabled: False)
A preview and listing of all form fields in the application. This
is useful to see what fields are available. You may also interact
with the field to see how it works in display mode.
...
|
List db models¶
Use --list-models
argument to the ptah-manage
to list all
registered ptah models.
1 2 3 4 5 6 7 8 9 10 | [fafhrd@... MyProject]$ ../bin/ptah-manage development.ini --list-models
* cms-type:app: Application (disabled: False)
Default ptah application
class: ApplicationRoot
module: MyProject.root
file: .../root.pyc
...
|
Data population¶
You can use the ptah-populate
command in a terminal window to execute a
populate steps registered with ptah.populate()
api. Much like
the any pyramid command, the ptah-populate
command accepts one argument
with the format config_file#section_name
.
Use -l
argument to list all registered steps.
1 2 3 4 5 6 7 | [fafhrd@... MyProject]$ ../bin/ptah-populate development.ini -l
* ptah-db-schema: Create db schema (active)
* ptah-crowd-admin: Create admin user (active)
...
|
It shows step name, then step title, and activity state. If step is active
it is beeing executed automatically with -a
argument.
Use -a
argument to execute all active steps.
1 2 3 4 5 6 7 8 | [fafhrd@... MyProject]$ ../bin/ptah-populate development.ini -a
2012-01-03 12:43:46,796 INFO [ptah][MainThread] Executing populate step: ptah-db-schema
2012-01-03 12:43:46,797 INFO [ptah][MainThread] Creating db table `ptah_crowd`.
2012-01-03 12:43:46,931 INFO [ptah][MainThread] Creating db table `ptah_blobs`
...
2012-01-03 12:43:48,087 INFO [ptah][MainThread] Executing populate step: ptah-crowd-admin
2012-01-03 12:43:48,092 INFO [ptah_crowd][MainThread] Creating admin user `admin` Ptah admin
...
|
Its possible to execute inactive steps or specific step with all required steps. Specify step names in command line after your ini file.
1 | [fafhrd@... MyProject]$ ../bin/ptah-populate development.ini ptah-db-schema ptah-crowd-admin
|
Data migration¶
You can use the ptah-migrate
command in a terminal window to execute a
migration steps registered with ptah.register_migration()
api.
Much like the any pyramid command, the ptah-migrate
command accepts
first argument with the format config_file#section_name
.
Use list
argument to list all registered migrations.
1 2 3 4 5 6 7 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini list
* ptah: Ptah database migration
ptah:migrations
/...src/ptah/ptah/migrations
...
|
Use revision
argument to create new revision for registered migration.
1 2 3 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini revision ptah
Generating /../src/ptah/ptah/migrations/3fd73c8b8727.py...done
...
|
Additional arguments:
-r
specify custom revision id. revision id has to contain only letters and numbers.
-m
specify revision message
Full command can look like:
1 2 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini revision ptah -r 001 -m "Add new column X"
...
|
Use upgrade
argument to upgrade package to specific revision. You can
specify one or more packages after upgrade
argument.
1 2 3 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini upgrade ptah
2012-01-11 17:00:44,506 INFO [ptah.alembic] ptah: running upgrade None -> 0301
...
|
To specify specific revision number use :
and revision number. For example
ptah:0301
Use current
argument to check current package revision. You can
specify any number of package after current
argument. If package is not
specified script shows information for all packages.
1 2 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini current ptah
Package 'ptah' rev: 0301(head) Migration to ptah 0.3
|
Use history
argument to check migrations history.
1 2 3 4 5 | [fafhrd@... MyProject]$ ../bin/ptah-migrate development.ini history ptah
ptah
====
0301: Ptah 0.3.0 changes
|