This project is read-only.

Error when loading from database

May 30, 2011 at 11:08 PM
Edited May 31, 2011 at 3:29 AM


I found DBSourceTools very useful and I'll use it to version my databases, but I'm experimenting an issue:

Some of the databases have tables which names have a slash "/" (e.g. "security_user/tasks") on their name this prevents DBSourceTools to write a file when loading from DB because it'll try to write the file "C:\path\dbstproject\SourceName\Tables\security_user/tasks.sql" this will generate a windows error.

So far I've edited DBSourceTools code to replace "/" with "_" so DBSourceTools can write to "C:\path\dbstproject\SourceName\Tables\security_user_tasks.sql" and as long as the project is loaded in computer's RAM it appears that there's no problem about it though, I think that's not the best solution.

If I close the project and load it again from disk, the source database tree gets the table names from the files in "C:\path\dbstproject\SourceName\Tables" so table "security_users/tasks" is displayed as "security_users_tasks", thus if I get the data from "security_users_tasks" DBSourceTools throws this error:

"Invalid object name 'security_users_tasks'."

AFAIK, DBSourceTools uses the table name in the database tree to get the data, as it was obtained from the file name the table name is wrong.

I plan to edit source code so DBSourceTools can map the table name with a file name and write this to a XML file so DBsourceTools can get the right table name even if the file name is different.

But you know better the code Nathan (rozentalsn), so if you think there is a better solution or a workaround to this problem please tell me.

Jun 2, 2011 at 4:34 AM

Hey mate,

Personally, I would rename the tables to not have slashes.  This is what the patching engine is for - to be able to make sweeping changes to your database and be able to thoroughly test each patch.

Yours, - Nathan