Added indexes; documented migration from Beta 1

This commit is contained in:
Alexey Verkhovsky 2005-11-13 06:47:43 +00:00
parent 78ddfc0642
commit 2f43e4a603
2 changed files with 41 additions and 24 deletions

60
README
View file

@ -6,28 +6,33 @@ on simplicity of installation and running:
Step 1. Download Step 1. Download
Step 2. Run "instiki" Step 2. Run "instiki"
Here it should say: "Step 3. Chuckle... "There's no step three!" (TM)" If you are on Windows:
... but this is a beta version that introduces an SQL-based backend, so: "Step 3. Chuckle... "There's no step three!" (TM)"
3. Kill 'instiki'
4. Install SQLite 3 database engine from http://www.sqlite.org/
5. Install SQLite 3 driver for Ruby from http://sqlite-ruby.rubyforge.org/
6. Install Rake from http://rake.rubyforge.org/
7. Execute 'rake db_schema_import create_sessions_table'
8. Make an embarrassed sigh (as I do while writing this)
9. Run 'instiki' again
10. Pat yourself on the shoulder for being such a talented geek
11. At least, there is no step eleven! (TM)
You're now running a perfectly suitable wiki on port 2500 You're now running a perfectly suitable wiki on port 2500
that'll present you with one-step setup, followed by a textarea for the home page that'll present you with one-step setup, followed by a textarea for the home page
on http://localhost:2500. on http://localhost:2500
Instiki lowers the barriers of interest for when you might consider Instiki lowers the barriers of interest for when you might consider
using a wiki. It's so simple to get running that you'll find yourself using a wiki. It's so simple to get running that you'll find yourself
using it for anything -- taking notes, brainstorming, organizing a using it for anything -- taking notes, brainstorming, organizing a
gathering. gathering.
Having said all that, if you are not on Windows, in this version of Instiki it is a somewhat different story.
Since the author has no Linux or Mac at hand, and Instiki is moving to a SQL-based backend, this is what it takes
to install (until somebody sends a patch to properly package Instiki for all those other platforms):
3. Kill "instiki"
4. Install SQLite 3 database engine from http://www.sqlite.org/
5. Install SQLite 3 driver for Ruby from http://sqlite-ruby.rubyforge.org/
6. Install Rake from http://rake.rubyforge.org/
7. Execute rm -f db/*.db
8. Execute 'rake db_schema_import'
9. Make an embarrassed sigh (as I do while writing this)
10. Run 'instiki' again
11. Pat yourself on the shoulder for being such a talented geek
12. At least, there is no step twelve! (TM)
===Features: ===Features:
* Regular expression search: Find deep stuff really fast * Regular expression search: Find deep stuff really fast
* Revisions: Follow the changes on every page from birth. Rollback to an earlier rev * Revisions: Follow the changes on every page from birth. Rollback to an earlier rev
@ -44,25 +49,24 @@ gathering.
* Embedded webserver: Through WEBrick[http://www.webrick.org] * Embedded webserver: Through WEBrick[http://www.webrick.org]
* Internationalization: Wiki words in any latin, greek, cyrillian, or armenian characters * Internationalization: Wiki words in any latin, greek, cyrillian, or armenian characters
* Color diffs: Track changes through revisions * Color diffs: Track changes through revisions
* Definitely can run on SQLite and MySQL
===Missing: * May be able to run on Postgres, Oracle, DB2 and SqlServer (if you try this )
* File attachments
===Command-line options: ===Command-line options:
* Run "instiki --help" * Run "ruby instiki --help"
===History: ===History:
* See CHANGELOG * See CHANGELOG
===Migrating Instiki 0.10.2 storage to Instiki-AR database ===Migrating Instiki 0.10.2 storage to Instiki 0.11.0 database
1. Install Instiki-AR and check that it works (you should be able to create a web, edit and save a HomePage) 1. Install Instiki 0.11 and check that it works (you should be able to create a web, edit and save a HomePage)
2. Execute 2. Execute
ruby script\import_storage \ ruby script\import_storage \
-t /full/path/to/instiki0.10/storage \ -t /full/path/to/instiki0.10/storage \
-i /full/path/to/instiki0.10/installation \ -i /full/path/to/instiki0.10/installation \
-d sqlite (or mysql, or postgres, depending on what you use) \ -d sqlite (or mysql, or postgres, depending on what you use) \
-o instiki_import.sql -o instiki_import.sql
for example: for example (Windows):
ruby script\import_storage -t c:\instiki-0.10.2\storage\2500 -i c:\instiki-0.10.2 -d sqlite -o instiki_import.sql ruby script\import_storage -t c:\instiki-0.10.2\storage\2500 -i c:\instiki-0.10.2 -d sqlite -o instiki_import.sql
3. This will produce instiki_import.sql file in the current working directory. 3. This will produce instiki_import.sql file in the current working directory.
Open it in a text editor and inspect carefully. Open it in a text editor and inspect carefully.
@ -77,11 +81,19 @@ The most common migration problem is this:
If you open All Pages screen and see a lot of orphaned pages, If you open All Pages screen and see a lot of orphaned pages,
you forgot to run ruby script\reset_references after importing the data. you forgot to run ruby script\reset_references after importing the data.
===Download latest from: ===Upgrading from Instiki-AR Beta 1
Beta 2 uses database to store HTTP sessions data. Also, there are some indexes renamed or added.
Otherwise, there are no schema changes, table structure is the same as in Beta 1.
Therefore, create a new development database, edit config/database.yml as appropriate, execute 'rake db_schema_import',
export data (but not structure!) from Beta 1 database, import it into the new one, check that Beta 2 development
environment works with imported data, copy the development database (both data AND structure this time) to production.
Future releases will use Rails Migrations, so the upgrade will be somewhat less of a hassle.
===Download the latest release from:
* http://rubyforge.org/project/showfiles.php?group_id=186 * http://rubyforge.org/project/showfiles.php?group_id=186
===Visit the official Instiki wiki: ===Visit the "official" Instiki wiki:
* http://www.instiki.org * http://instiki.org
===License: ===License:
* same as Ruby's * same as Ruby's
@ -89,7 +101,7 @@ you forgot to run ruby script\reset_references after importing the data.
--- ---
Authors:: Authors::
Versions 0.1 to 0.9.1:: David Heinemeier Hansson Versions 0.0 to 0.9.1:: David Heinemeier Hansson
Email:: david@loudthinking.com Email:: david@loudthinking.com
Weblog:: http://www.loudthinking.com Weblog:: http://www.loudthinking.com

View file

@ -22,6 +22,9 @@ ActiveRecord::Schema.define() do
t.column "author", :string, :limit => 60 t.column "author", :string, :limit => 60
t.column "ip", :string, :limit => 60 t.column "ip", :string, :limit => 60
end end
add_index "revisions", ["page_id"]
add_index "revisions", ["created_at"]
add_index "revisions", ["author"]
create_table "sessions", :force => true do |t| create_table "sessions", :force => true do |t|
t.column "session_id", :string t.column "session_id", :string
@ -59,5 +62,7 @@ ActiveRecord::Schema.define() do
t.column "referenced_name", :string, :limit => 60, :null => false t.column "referenced_name", :string, :limit => 60, :null => false
t.column "link_type", :string, :limit => 1, :null => false t.column "link_type", :string, :limit => 1, :null => false
end end
add_index "wiki_references", ["page_id"]
add_index "wiki_references", ["referenced_name"]
end end