| rev | 
   line source | 
| 
jbe@0
 | 
     1 
 | 
| 
jbe@0
 | 
     2 Setup the database:
 | 
| 
jbe@0
 | 
     3 $ createdb liquid_feedback
 | 
| 
jbe@0
 | 
     4 $ psql -v ON_ERROR_STOP=1 -f core.sql liquid_feedback
 | 
| 
jbe@0
 | 
     5 
 | 
| 
jbe@0
 | 
     6 Optionally insert demo data:
 | 
| 
jbe@0
 | 
     7 $ psql -v ON_ERROR_STOP=1 -f demo.sql liquid_feedback
 | 
| 
jbe@0
 | 
     8 
 | 
| 
jbe@0
 | 
     9 Compile lf_update binary:
 | 
| 
jbe@0
 | 
    10 $ make
 | 
| 
jbe@0
 | 
    11 
 | 
| 
jbe@435
 | 
    12 Ensure that "lf_update dbname=liquid_feedback",
 | 
| 
jbe@435
 | 
    13 "lf_update_issue_order dbname=liquid_feedback", and
 | 
| 
jbe@380
 | 
    14 "lf_update_suggestion_order dbname=liquid_feedback" are called
 | 
| 
jbe@380
 | 
    15 regularly! It is required to run these commands regularly
 | 
| 
jbe@380
 | 
    16 (i.e. every 5 minutes via cron) to update cached supporter counts,
 | 
| 
jbe@380
 | 
    17 to change the state of issues when neccessary, to calculate the
 | 
| 
jbe@380
 | 
    18 result of votings, etc.  If you wish, copy the created lf_update
 | 
| 
jbe@380
 | 
    19 and lf_update_suggestion_order files to /usr/local/bin or a
 | 
| 
jbe@380
 | 
    20 similar directory.
 | 
| 
jbe@202
 | 
    21 
 | 
| 
jbe@380
 | 
    22 It is possible to run these two commands in parallel, if a setup
 | 
| 
jbe@380
 | 
    23 requires splitting the load to multiple processor cores. In other
 | 
| 
jbe@380
 | 
    24 cases it is recommended to run "lf_update" first, and then
 | 
| 
jbe@435
 | 
    25 "lf_update_issue_order" and "lf_update_suggestion_order".
 | 
| 
jbe@202
 | 
    26 
 | 
| 
jbe@380
 | 
    27 On successful run, these commands will not produce any output
 | 
| 
jbe@435
 | 
    28 and exit with code 0. The commands "lf_update_issue_order" and
 | 
| 
jbe@435
 | 
    29 "lf_update_suggestion_order" may be called with a first argument
 | 
| 
jbe@435
 | 
    30 of "-v" to print log output.
 | 
| 
jbe@0
 | 
    31 
 | 
| 
jbe@0
 | 
    32 NOTE: When writing to the database, some INSERTs must be executed
 | 
| 
jbe@0
 | 
    33       within the same transaction, e.g. issues can't exist without
 | 
| 
jbe@0
 | 
    34       an initiative and vice versa.
 | 
| 
jbe@0
 | 
    35 
 | 
| 
jbe@8
 | 
    36 To create an export file, which is containing all but private data,
 | 
| 
jbe@8
 | 
    37 you may use the lf_export shell-script:
 | 
| 
jbe@8
 | 
    38 $ lf_export liquid_feedback export.sql.gz
 | 
| 
jbe@8
 | 
    39 
 | 
| 
jbe@274
 | 
    40 Refer to source code of function "delete_private_data"() to see,
 | 
| 
jbe@274
 | 
    41 which data gets deleted. If you need a different behaviour, please
 | 
| 
jbe@274
 | 
    42 copy the function and modify the lf_export shell script accordingly.
 | 
| 
jbe@274
 | 
    43 
 | 
| 
jbe@0
 | 
    44 To uninstall the software, delete the lf_update binary
 | 
| 
jbe@0
 | 
    45 and drop the database by entering the following command:
 | 
| 
jbe@0
 | 
    46 $ dropdb liquid_feedback
 | 
| 
jbe@0
 | 
    47 
 | 
| 
jbe@120
 | 
    48 Updating is done using the update scripts in the update/ directory.
 | 
| 
jbe@350
 | 
    49 Do not forget to make backups, before installing any updates.
 | 
| 
jbe@251
 | 
    50 After updating it is recommended to recreate the schema as follows
 | 
| 
jbe@251
 | 
    51 (assuming the database superuser is named "postgres"):
 | 
| 
jbe@120
 | 
    52 $ pg_dump --disable-triggers --data-only DATABASE_NAME > tmp.sql
 | 
| 
jbe@120
 | 
    53 $ dropdb DATABASE_NAME
 | 
| 
jbe@120
 | 
    54 $ createdb DATABASE_NAME
 | 
| 
jbe@120
 | 
    55 $ psql -v ON_ERROR_STOP=1 -f core.sql DATABASE_NAME
 | 
| 
jbe@251
 | 
    56 $ su postgres  # (execute following command as database superuser)
 | 
| 
jbe@120
 | 
    57 $ psql -v ON_ERROR_STOP=1 -f tmp.sql DATABASE_NAME
 | 
| 
jbe@251
 | 
    58 $ exit         # leave "su" command
 | 
| 
jbe@120
 | 
    59 $ rm tmp.sql
 | 
| 
jbe@120
 | 
    60 
 |