Discovered the cause of my phantom ALTER line that was being inserted
into the generated scripts.
Turns out that one of the mapping file contains this:
<database-object>
<create>
ALTER TABLE NumberRequest DROP COLUMN SubmissionNumber
ALTER TABLE NumberRequest ADD SubmissionNumber INT
IDENTITY
</create>
<drop>
ALTER TABLE NumberRequest DROP COLUMN SubmissionNumber
</drop>
</database-object>
This sets the submission number as an identity column as we have to
give a unique number back to the user when they submit an item. The
submission number column is not the primary key so there was no way of
creating a unique number with the basic mappings, this seemed to be an
alternative.
Anyways, mystery solved. Thanks for everyone's input.
On Oct 28, 6:29 am, Bil Simser <[EMAIL PROTECTED]> wrote:
> 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 -- 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
-~----------~----~----~----~------~----~------~--~---