This is driving me batshit crazy, and it's only Tuesday morning.
Here's the test:
[Test]
public void GenerateSqlScripts()
{
var cfg = new Configuration();
cfg.Configure();
var export = new SchemaExport(cfg);
export.SetOutputFile("DMTools_Create_Tables.sql");
export.SetDelimiter("\r\n");
export.Create(true, false);
}
Whether I put:
export.Create(true, false);
or:
export.Drop(true, false);
export.Create(true, false);
or:
export.Drop(true, false);
I *always* get the same SQL output with the first line being:
ALTER TABLE NumberRequest DROP COLUMN SubmissionNumber
I don't get it?? Why would the test with only export.Create(true,
false) generate that line?
All I'm trying to do is have a unit test that generates my schema
(which is used via a deploy tool I built to execute it on the target
environment).
I must be missing something simple here.
On Oct 27, 3:44 pm, "Tuna Toksöz" <[EMAIL PROTECTED]> wrote:
> This is what nhibernate does actually in its unit tests. Create at the
> beginning and drop in the end. Ensures that another tests schema doesn't
> intersect with the current one.
>
> Bill can you send an isolated test case?
>
> On Mon, Oct 27, 2008 at 11:36 PM, Gustavo Ringel
> <[EMAIL PROTECTED]>wrote:
>
>
>
>
>
> > Just wondering why will you drop before creating in a unit test?
> > And, are you sure DROP column is being sent by the Drop() function? i never
> > seen DROP Columns in my logs...(that doesn't mean a lot, but in every app it
> > only drop constraints and tables)
>
> > Gustavo.
>
> > On Mon, Oct 27, 2008 at 11:29 PM, Bil Simser <[EMAIL PROTECTED]>wrote:
>
> >> I have a unit test that generates our database scripts for us. The
> >> first thing it does is create the drop script then a creation script.
> >> Its on the drop script that it's failing.
>
> >> Here's my test:
>
> >> [Test]
> >> public void GenerateSqlScripts()
> >> {
> >> var cfg = new Configuration();
> >> cfg.Configure();
> >> var export = new SchemaExport(cfg);
> >> export.SetOutputFile("DMTools_Create_Tables.sql");
> >> export.SetDelimiter("\r\n");
> >> export.Drop(true, false);
> >> }
>
> >> And here's the beginning of the script its creating:
>
> >> ALTER TABLE NumberRequest DROP COLUMN SubmissionNumber
>
> >> if exists (select 1 from sys.objects where object_id =
> >> OBJECT_ID(N'[FK8CF8CE147E4F923C]') AND parent_object_id =
> >> OBJECT_ID('SubmissionTypeAttribute'))
> >> alter table SubmissionTypeAttribute drop constraint
> >> FK8CF8CE147E4F923C
>
> >> if exists (select 1 from sys.objects where object_id =
> >> OBJECT_ID(N'[FK18FFC40D9E29DE20]') AND parent_object_id =
> >> OBJECT_ID('NumberRequestAttributeValues'))
> >> alter table NumberRequestAttributeValues drop constraint
> >> FK18FFC40D9E29DE20
>
> >> Obviously the drop script is failing because it tries to ALTER a table
> >> called NumbeRequest and it's not there (on a new database). Just
> >> wondering why all the other tables are wrapped in an "if exists"
> >> statement to prevent errors (in case the table isn't there) but this
> >> one isn't? It's not any different from other tables in the solution.
>
> --
> Tuna Toksöz
>
> Typos included to enhance the readers attention!- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---