Man, this caused some bad headaces to me
What steps will reproduce the problem?
1. Setup a mysql server
2. Add a db + table and let subsonic generate the code
3. Add a column to the table and let subsonic generate the code
4. Open the generated file and look if the just created column is added as
a property
What is the expected output? What do you see instead?
The just created column is not added to the ActiveRecord object as a property.
Cause:
Subsonic uses a query like this:
SELECT ...
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'YourDbSchema'
to get the information about your tables from mysql
However, MySql seems to cache these values.
If you execute
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
after a change (column added / column changed from int to double) the
values seem to be cached.
Solution:
Execute "FLUSH TABLES" just before subsonic generates the code.
I provided a patch that does exactly this right before every query in
MySqlInnoDBDataProvider.cs
It is tested and works for me with r522
And because I'm a nice guy I also patched the MySqlDataProvider.cs, but,
didn't test the result. however, that should work, too.
Just one note:
I don't know if the behaviour (don't update information schema after a
change) is wanted or a bug in mysql. I'm running a 5.1.30 under windows.
Original issue reported on code.google.com by j.steinblock@gmail.com on 7 May 2009 at 2:25
Original issue reported on code.google.com by
j.steinblock@gmail.com
on 7 May 2009 at 2:25Attachments: