Commit Graph

26 Commits

Author SHA1 Message Date
Brion Vibber 8454b1fbad Fix for schema upgrade issue when primary keys change; fixes upgrade direct from 0.8.x
Previously we were failing to update the primary key during ensureTable(), which could lead to failures when updating some tables (eg queue_item where we changed keys, and the addition of an autoincrement column failed because it conflicted with the old key).
Now if the key is different, we remove the old key at the start and add the new key at the end of the ALTER TABLE.

Not tested on PostgreSQL -- someone please check whether the alter table 'DROP CONSTRAINT PRIMARY KEY' bit works or if it needs to pull a special name for the key.
On MySQL, dropping uses alter table's 'DROP PRIMARY KEY' special case.
2011-09-08 13:03:22 -07:00
Brion Vibber 692ef9c330 Include fulltext indexes in MySQL table create 2010-11-01 13:27:44 -07:00
Brion Vibber f5019ac5aa tweaks for the installer whee 2010-10-29 16:26:45 -07:00
Brion Vibber 345b7d33b8 some sorta vaguely working bits 2010-10-29 15:28:48 -07:00
Brion Vibber e07254d15b $config['db']['mysql_foreign_keys'] option to experimentally enable foreign keys on MySQL. (Would only work on InnoDB tables, may explode, etc) 2010-10-19 12:11:49 -07:00
Brion Vibber 4aa6c4e49f MySQL schema: fix dropping unique indexes, add support for changing table properties back from old code. 2010-10-18 17:44:41 -07:00
Brion Vibber a923ef9719 Drop reverseTypeMap from schemas; we're now doing the forward-mapping on the canonical def before comparing 2010-10-18 17:21:12 -07:00
Brion Vibber eb93bdbb03 some more tweaking to do the mappings during filterDef; not totally sure I like it 2010-10-15 16:32:37 -07:00
Brion Vibber 90c35dc541 Cleanup on making the schema work for installer (not quite there yet) 2010-10-15 13:47:38 -07:00
Brion Vibber 229c772634 Filter table definitions to scrub out unsupported features before trying to alter a table. This lets us skip those where we end up trying to change unsupported features. 2010-10-13 16:04:28 -07:00
Brion Vibber 7723d15cd0 tweak for mysql 2010-10-11 19:14:33 -07:00
Brion Vibber 9364e446b1 Start reworking things to build create table stuff (can view via dumpschema.php --build) 2010-10-11 19:10:51 -07:00
Brion Vibber 7f674cc957 Merge branch 'schema-x' of /Users/brion/pages/mublog into schema-x 2010-10-08 16:38:18 -07:00
Brion Vibber 2d0807bc1c Starting on adapting postgresql schema class to look stuff up in the new drupalish format...
Fetching basic column data and unique indexes. Still needs detail work, multi-value indexes, foreign keys, and distinguishing the primary key.
Since we don't get comments and such, for cleaner comparisons we should probably do a filtering on supported features.
2010-10-08 16:36:32 -07:00
Brion Vibber 2e475ceab0 Some more poking at schema stuff, on the road towards a more portable table-modification with the new schema bits 2010-10-07 18:33:02 -07:00
Brion Vibber efa8ff82f4 fix up some more 'not null's and such 2010-10-07 17:31:56 -07:00
Brion Vibber 85156fcbed Fix detection of auto_increment fields in MySQL (sets them as 'serial' type) 2010-10-07 17:22:36 -07:00
Brion Vibber 14e4f50f29 Some cleanup on detecting types 2010-10-07 16:49:49 -07:00
Brion Vibber 63c4cb3f36 Finish patching up the index fetching in new schema stuff for mysql 2010-10-07 15:14:10 -07:00
Brion Vibber a680e1798c Work in progress on fetching table defs from existing tables in new format -- unfinished 2010-10-06 18:28:32 -07:00
Brion Vibber 033a757013 More schema work in progress... removing duped code from schema child classes, rebuilding things a bit more (incomplete; non-working state) 2010-08-16 16:31:18 -07:00
Brion Vibber 6a2659ed67 Workaround for index setup on SubMirror until I'm done w/ arbitrary index support for Schema setup. 2010-08-10 11:45:34 -07:00
James Walker c2a26ba653 removing redundant constructor 2010-07-29 21:03:48 -04:00
Brion Vibber 9e9ab23e1f Fixes for updating indices, charset/collation and engine type on plugin-created tables.
Under MySQL, new tables will be created as InnoDB with UTF-8 (utf8/utf8_bin) same as core tables.
Existing plugin tables will have table engine and default charset/collation updated, and string columns will have charset updated, at checkschema time.

Switched from 'DESCRIBE' to INFORMATION_SCHEMA for pulling column information in order to get charset. A second hit to INFORMATION_SCHEMA is also needed to get table properties.

Indices were only being created at table creation time, which ain't so hot. Now also adding/dropping indices when they change.

Fixed up some schema defs in OStatus plugin that were a bit flaky, causing extra alter tables to be run.

TODO: Generalize this infrastructure a bit more up to base schema & pg schema classes.
2010-03-12 13:16:32 -08:00
Brion Vibber dc09453a77 First steps on converting FeedSub into the pub/sub basis for OStatus communications:
* renamed FeedSub plugin to OStatus
* now setting avatar on subscriptions
* general fixes for subscription
* integrated PuSH hub to handle only user timelines on canonical ID url; sends updates directly
* set $config['feedsub']['nohub'] = true to test w/ foreign feeds that don't have hubs (won't actually receive updates though)
* a few bits of code documentation
* HMAC support for verified distributions (safest if sub setup is on HTTPS)

And a couple core changes:
* minimizing HTML output for exceptions in API requests to aid in debugging
* fix for rel=self link in apitimelineuser when id given

This does not not yet include any of the individual subscription management (Salmon notifications for sub/unsub, etc) nor a nice UI for user subscriptions.
Needs some further cleanup to treat posts as status updates instead of link references.
2010-02-08 11:15:29 -08:00
Evan Prodromou 81087e45c5 move schema.type.php to typeschema.php like other files 2010-01-31 15:25:59 -05:00