ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/doc/SQL
Revision: 1.2
Committed: Thu Jul 19 12:35:04 2007 UTC (16 years, 10 months ago) by pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
convert documentation to POD and use this for the website

File Contents

# Content
1 Read this first
2 ---------------
3
4 As of version 2.2, Services no longer supports SQL databases. The
5 documentation concern SQL is available below. To use Services 2.2, you
6 will need to switch to the flatfile backend.
7
8
9 SQL Notes
10 ---------
11
12 Atheme supports SQL databases. SQL is not "live" for a number of
13 reasons. Most significantly, better, more portable, and safer
14 functionality is provided by Atheme's XML-RPC interface.
15
16 To repeat, the SQL backends do not pick up any changes to the
17 database at run time and only write changes to the database every
18 5 minutes (or configurable time), and therefore they cannot (or only
19 to a very limited extent) be used to create web interfaces to services.
20
21 Additionally the SQL backends are less well tested than flatfile, and
22 may lack some recent features (nickname access lists (/ns access),
23 services ignores).
24
25 Schema files are available in the SQL/ directory.
26
27 Note that during 0.3 development, several columns changed from
28 VARCHAR to TEXT.
29
30
31 PostgreSQL
32 ----------
33
34 To initialize the database, use:
35
36 psql <database> < atheme_init.pgsql
37
38 Upgrade information:
39
40 Note that the several aspects of the schema have changed. Some
41 information was moved to metadata. The only major issue with this is
42 with the ENTRYMSG and URL columns in the CHANNELS table. Run
43 0.3beta2 against your database and the values will be automatically
44 converted to metadata. Then, it is safe to drop those columns.
45
46 Note also that the FAILNUM, LASTFAIL, and LASTFAILON columns in the
47 ACCOUNTS table have been removed.
48
49 The PostgreSQL FAQ has this to say on changing a column's data type:
50
51 Changing the data type of a column can be done easily in 8.0
52 and later with ALTER TABLE ALTER COLUMN TYPE.
53
54 In earlier releases, do this:
55
56 BEGIN;
57 ALTER TABLE tab ADD COLUMN new_col new_data_type;
58 UPDATE tab SET new_col = CAST(old_col AS new_data_type);
59 ALTER TABLE tab DROP COLUMN old_col;
60 COMMIT;
61
62 You might then want to do VACUUM FULL tab to reclaim
63 the disk space used by the expired rows.
64
65 (http://www.postgresql.org/docs/faqs.FAQ.html#4.3)
66
67
68 Switching to a SQL backend
69 --------------------------
70
71 Switching to a SQL backend is relatively painless; just make sure
72 that your database {} block is configured properly.
73 Hint: /msg operserv rehash
74
75 Once you have a properly configured database{} block, you can simply
76 load the replacement backend via:
77 /msg operserv modload ../backend/<replacement backend>
78
79 After the backend is loaded, you can export your data by using
80 OperServ's UPDATE command.
81
82 Once you have loaded the replacement backend, you are now on
83 SQL. You will probably want to switch your backend module out in
84 the configuration file, as your flatfile database will no longer
85 be updated. You may want to restart Services to ensure that the
86 transition was successful after updating the config file.
87
88 Switching from a SQL backend to flatfile can be done similarly.