Updated INSTALL document and schema dump for new full-text search.
This commit is contained in:
parent
37e886f27c
commit
3124e97e47
59
INSTALL
59
INSTALL
|
@ -18,15 +18,11 @@ packages:
|
||||||
postgresql-contrib-8.1 python-psycopg2 python-simplejson python-tz
|
postgresql-contrib-8.1 python-psycopg2 python-simplejson python-tz
|
||||||
|
|
||||||
|
|
||||||
development mode
|
database setup
|
||||||
----------------
|
--------------
|
||||||
|
|
||||||
Running the Luminotes server in development mode is convenient for testing out
|
Configure PostgreSQL's pg_hba.conf (usually found under /etc/postgresql/) to
|
||||||
changes, because it uses CherryPy's built-in web server with auto-reload
|
require passwords for local connections:
|
||||||
enabled, so the server will automatically reload any modified source files as
|
|
||||||
soon as they're modified.
|
|
||||||
|
|
||||||
Configure PostgreSQL's pg_hba.conf to require passwords for local connections:
|
|
||||||
|
|
||||||
local all all md5
|
local all all md5
|
||||||
|
|
||||||
|
@ -35,16 +31,37 @@ Restart postgresql so these changes take effect:
|
||||||
/etc/init.d/postgresql restart
|
/etc/init.d/postgresql restart
|
||||||
|
|
||||||
As the PostgreSQL superuser (usually "postgres"), create a new database user
|
As the PostgreSQL superuser (usually "postgres"), create a new database user
|
||||||
and set the password to "dev".
|
and set a new password, for instance, "mypassword".
|
||||||
|
|
||||||
createuser -S -d -R -P -E luminotes
|
createuser -S -d -R -P -E luminotes
|
||||||
|
createdb -E UTF8 luminotes
|
||||||
|
echo "alter database luminotes owner to luminotes;" | psql luminotes
|
||||||
|
|
||||||
|
Also as the PostgreSQL superuser, setup full-text searching. The path to the
|
||||||
|
tsearch2.sql file may be different depending on your Linux distribution or
|
||||||
|
PostgreSQL version:
|
||||||
|
|
||||||
|
psql luminotes < /usr/share/postgresql/8.1/contrib/tsearch2.sql
|
||||||
|
echo "grant all on pg_ts_cfg to luminotes;" | psql luminotes
|
||||||
|
echo "grant all on pg_ts_cfgmap to luminotes;" | psql luminotes
|
||||||
|
echo "grant all on pg_ts_dict to luminotes;" | psql luminotes
|
||||||
|
echo "grant all on pg_ts_parser to luminotes;" | psql luminotes
|
||||||
|
|
||||||
Initialize the database with the starting schema and default data:
|
Initialize the database with the starting schema and default data:
|
||||||
|
|
||||||
createdb -W -E UTF8 -U luminotes luminotes
|
|
||||||
export PYTHONPATH=.
|
export PYTHONPATH=.
|
||||||
|
export PGPASSWORD=mypassword
|
||||||
python2.4 tools/initdb.py
|
python2.4 tools/initdb.py
|
||||||
|
|
||||||
|
|
||||||
|
development mode
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Running the Luminotes server in development mode is convenient for testing out
|
||||||
|
changes, because it uses CherryPy's built-in web server with auto-reload
|
||||||
|
enabled, so the server will automatically reload any modified source files as
|
||||||
|
soon as they're modified.
|
||||||
|
|
||||||
To start the server in development mode, run:
|
To start the server in development mode, run:
|
||||||
|
|
||||||
python2.4 luminotes.py -d
|
python2.4 luminotes.py -d
|
||||||
|
@ -106,26 +123,6 @@ domain you're using. For instance:
|
||||||
"luminotes.http_url": "http://luminotes.com",
|
"luminotes.http_url": "http://luminotes.com",
|
||||||
"luminotes.https_url": "https://luminotes.com",
|
"luminotes.https_url": "https://luminotes.com",
|
||||||
|
|
||||||
Configure PostgreSQL's pg_hba.conf to require passwords for local connections:
|
|
||||||
|
|
||||||
local all all md5
|
|
||||||
|
|
||||||
Restart postgresql so these changes take effect:
|
|
||||||
|
|
||||||
/etc/init.d/postgresql restart
|
|
||||||
|
|
||||||
As the PostgreSQL superuser (usually "postgres"), create a new database user
|
|
||||||
and set a new password, for instance, "mypassword".
|
|
||||||
|
|
||||||
createuser -S -d -R -P -E luminotes
|
|
||||||
|
|
||||||
Initialize the database with the starting schema and default data:
|
|
||||||
|
|
||||||
createdb -W -E UTF8 -U luminotes luminotes
|
|
||||||
export PYTHONPATH=.
|
|
||||||
export PGPASSWORD=mypassword
|
|
||||||
python2.4 tools/initdb.py
|
|
||||||
|
|
||||||
Then to actually start the production mode server, run:
|
Then to actually start the production mode server, run:
|
||||||
|
|
||||||
python2.4 luminotes.py
|
python2.4 luminotes.py
|
||||||
|
@ -139,7 +136,7 @@ sending email
|
||||||
|
|
||||||
If you would like Luminotes to be able to send password reset emails, then
|
If you would like Luminotes to be able to send password reset emails, then
|
||||||
you'll need a mail server running on the same machine that is capabable of
|
you'll need a mail server running on the same machine that is capabable of
|
||||||
receiving local SMTP connections and sending email. Either way, please change
|
receiving local SMTP connections and sending email. Either way, please set
|
||||||
the luminotes.support_email address in config/Common.py to the email address
|
the luminotes.support_email address in config/Common.py to the email address
|
||||||
you'd like in the From field of all outgoing emails. This email address also
|
you'd like in the From field of all outgoing emails. This email address also
|
||||||
shows up in various error messages and other places for a support contact
|
shows up in various error messages and other places for a support contact
|
||||||
|
|
|
@ -19,6 +19,18 @@ SET default_tablespace = '';
|
||||||
|
|
||||||
SET default_with_oids = false;
|
SET default_with_oids = false;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: drop_html_tags(text); Type: FUNCTION; Schema: public; Owner: luminotes
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE FUNCTION drop_html_tags(text) RETURNS text
|
||||||
|
AS $_$select regexp_replace( regexp_replace( $1, '</?(div|p|br|ul|ol|li|h3)( [^>]*?)?>', ' ', 'gi' ), '<[^>]+?>', '', 'g' );$_$
|
||||||
|
LANGUAGE sql;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER FUNCTION public.drop_html_tags(text) OWNER TO luminotes;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: luminotes_user; Type: TABLE; Schema: public; Owner: luminotes; Tablespace:
|
-- Name: luminotes_user; Type: TABLE; Schema: public; Owner: luminotes; Tablespace:
|
||||||
--
|
--
|
||||||
|
@ -59,7 +71,8 @@ CREATE TABLE note (
|
||||||
notebook_id text,
|
notebook_id text,
|
||||||
startup boolean DEFAULT false,
|
startup boolean DEFAULT false,
|
||||||
deleted_from_id text,
|
deleted_from_id text,
|
||||||
rank numeric
|
rank numeric,
|
||||||
|
search tsvector
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,7 +83,7 @@ ALTER TABLE public.note OWNER TO luminotes;
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE VIEW note_current AS
|
CREATE VIEW note_current AS
|
||||||
SELECT note.id, note.revision, note.title, note.contents, note.notebook_id, note.startup, note.deleted_from_id, note.rank FROM note WHERE (note.revision IN (SELECT max(sub_note.revision) AS max FROM note sub_note WHERE (sub_note.id = note.id)));
|
SELECT note.id, note.revision, note.title, note.contents, note.notebook_id, note.startup, note.deleted_from_id, note.rank, note.search FROM note WHERE (note.revision IN (SELECT max(sub_note.revision) AS max FROM note sub_note WHERE (sub_note.id = note.id)));
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE public.note_current OWNER TO luminotes;
|
ALTER TABLE public.note_current OWNER TO luminotes;
|
||||||
|
@ -201,6 +214,26 @@ CREATE INDEX note_notebook_id_title_index ON note USING btree (notebook_id, titl
|
||||||
CREATE INDEX password_reset_email_address_index ON password_reset USING btree (email_address);
|
CREATE INDEX password_reset_email_address_index ON password_reset USING btree (email_address);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: search_index; Type: INDEX; Schema: public; Owner: luminotes; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX search_index ON note USING gist (search);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: search_update; Type: TRIGGER; Schema: public; Owner: luminotes
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TRIGGER search_update
|
||||||
|
BEFORE INSERT OR UPDATE ON note
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE PROCEDURE tsearch2('search', 'drop_html_tags', 'title', 'contents');
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE pg_ts_cfg SET locale = 'en_US.UTF-8' WHERE ts_name = 'default';
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: public; Type: ACL; Schema: -; Owner: postgres
|
-- Name: public; Type: ACL; Schema: -; Owner: postgres
|
||||||
--
|
--
|
||||||
|
|
Reference in New Issue