jbe@0: jbe@0: Setup the database: jbe@0: $ createdb liquid_feedback jbe@0: $ psql -v ON_ERROR_STOP=1 -f core.sql liquid_feedback jbe@0: jbe@0: Optionally insert demo data: jbe@0: $ psql -v ON_ERROR_STOP=1 -f demo.sql liquid_feedback jbe@0: jbe@0: Compile lf_update binary: jbe@0: $ make jbe@0: jbe@380: Ensure that "lf_update dbname=liquid_feedback" and jbe@380: "lf_update_suggestion_order dbname=liquid_feedback" are called jbe@380: regularly! It is required to run these commands regularly jbe@380: (i.e. every 5 minutes via cron) to update cached supporter counts, jbe@380: to change the state of issues when neccessary, to calculate the jbe@380: result of votings, etc. If you wish, copy the created lf_update jbe@380: and lf_update_suggestion_order files to /usr/local/bin or a jbe@380: similar directory. jbe@202: jbe@380: It is possible to run these two commands in parallel, if a setup jbe@380: requires splitting the load to multiple processor cores. In other jbe@380: cases it is recommended to run "lf_update" first, and then jbe@380: "lf_update_suggestion_order". jbe@202: jbe@380: On successful run, these commands will not produce any output jbe@380: and exit with code 0. The command "lf_update_suggestion_order" may jbe@380: be called with a first argument of "-v" to print log output. jbe@0: jbe@0: NOTE: When writing to the database, some INSERTs must be executed jbe@0: within the same transaction, e.g. issues can't exist without jbe@0: an initiative and vice versa. jbe@0: jbe@8: To create an export file, which is containing all but private data, jbe@8: you may use the lf_export shell-script: jbe@8: $ lf_export liquid_feedback export.sql.gz jbe@8: jbe@274: Refer to source code of function "delete_private_data"() to see, jbe@274: which data gets deleted. If you need a different behaviour, please jbe@274: copy the function and modify the lf_export shell script accordingly. jbe@274: jbe@0: To uninstall the software, delete the lf_update binary jbe@0: and drop the database by entering the following command: jbe@0: $ dropdb liquid_feedback jbe@0: jbe@120: Updating is done using the update scripts in the update/ directory. jbe@350: Do not forget to make backups, before installing any updates. jbe@251: After updating it is recommended to recreate the schema as follows jbe@251: (assuming the database superuser is named "postgres"): jbe@120: $ pg_dump --disable-triggers --data-only DATABASE_NAME > tmp.sql jbe@120: $ dropdb DATABASE_NAME jbe@120: $ createdb DATABASE_NAME jbe@120: $ psql -v ON_ERROR_STOP=1 -f core.sql DATABASE_NAME jbe@251: $ su postgres # (execute following command as database superuser) jbe@120: $ psql -v ON_ERROR_STOP=1 -f tmp.sql DATABASE_NAME jbe@251: $ exit # leave "su" command jbe@120: $ rm tmp.sql jbe@120: