Hi,
My understanding is something to do with a row length limit in InnoDB.
If I remember correctly its because MySQL 5.5 ships with InnoDB by
default as opposed to MyISAM.
InnoDB has advantages in that it is supposed to be more robust in terms
of not losing data in weird circumstances (power outages etc), hence the
reason for the switch.
Potentially to "fix" this you have a few approaches:
* Set the initial SQL create statements to include a MyISAM table
create statement for the SERVICES table
* Refactor the SERVICES table so that there isn't 248 columns per
record.
Refactoring is probably the way to go but its not a small amount of
work. Off the top of my head you could separate off all 168 clock
fields into their own table, something like:
CLOCK_NAME: Name of the clock, same as CLOCK1 - 168 at the moment
SLOT: value 1 - 168 to replace the CLOCK1 - 168 columns
SERVICE: Name of the service this clock belongs to
Sounds simple but the amount of stuff you'd need to change (as a guess,
I've not looked into the code):
* Log Generation
* Log Manager for the Grids
* Install SQL table creation for SERVICES and a new table
Theres probably a lot more that I've not thought about.
By the way, even with this change SERVICES will still have 80 columns.
I don't like that for readability but theres no real reason to worry
about it. I quite like the way the Wordpress options table is
structured with the whole: id, setting name, setting value. Plus from a
programming view you can just loop through the results and shove them in
a hash map for easier retrieval (instead of having a big array and
having to remember element 150 = clock 69.
Again this would make no difference other than to satisfy my own need
for weird ways of structuring/coding things.
Regards,
Wayne
On 2013-12-05 04:30, Karl Koscher wrote:
Yeah, Ive ran in to this before as well. Which raises a point: why
are
service grids stored with clock names instead of IDs?
On Wed, Dec 4, 2013 at 4:13 PM, Pedro Picoto <pedro.pic...@gmail.com
[3]> wrote:
I suffered the same a few weeks ago. Wayne Merricks suggested me
this:
Check that your SERVICES table is set to MyISAM and not INNODB
(which is the default I think in Mysql 5.5+)
$ mysql -h rivserver_ip_or_name -u root -p
$> use Rivendell;
$> show create table SERVICES;
Youll get a big mess of SQL splurged out, scroll down to here:
`CLOCK166` char(64) DEFAULT NULL,
`CLOCK167` char(64) DEFAULT NULL,
PRIMARY KEY (`NAME`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
If its not MyISAM try this:
$> alter table SERVICES ENGINE=MyISAM;
Then redo your grids and see if it sticks.
IT WORKED!
Backup the DB prior doing anything!!!
_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org [1]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev
[2]
Links:
------
[1] mailto:Rivendell-dev@lists.rivendellaudio.org
[2] http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev
[3] mailto:pedro.pic...@gmail.com
_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev