create table invite ( id text not null, revision timestamp with time zone not null, from_user_id text, notebook_id text, email_address text, read_write boolean, owner boolean, redeemed_user_id text ); alter table invite add primary key ( id ); create index invite_notebook_id_index on invite ( notebook_id ); create index invite_email_address_index on invite ( email_address ); alter table user_notebook add column owner boolean default false; update user_notebook set owner = 't' where read_write = 't'; alter table notebook add column user_id text; alter table note add column user_id text; drop view notebook_current; create view notebook_current as SELECT id, revision, name, trash_id, deleted, user_id from notebook where ( notebook.revision IN ( SELECT max( sub_notebook.revision ) AS max FROM notebook sub_notebook where sub_notebook.id = notebook.id ) ); drop view note_current; create view note_current as select id, revision, title, contents, notebook_id, startup, deleted_from_id, rank, search, user_id from note where ( note.revision in ( select max( sub_note.revision ) as max from note sub_note where sub_note.id = note.id ) );