2013-06-06 4 views
2

Я пытаюсь самостоятельно изучить Fluent Migrator, и у меня возникла проблема с изменением структуры таблицы, созданной Fluent migrator, так как я создал таблицу с именем пользователя используя следующий кодКак изменить определение таблицы с использованием Fluent Migrator

[Migration(201306041130)] 
    public class BussinessMigrator : Migration 
    { 
     public override void Up() 
     { 
      Create.Table("user") 
       .WithColumn("id").AsInt32().PrimaryKey().NotNullable().Identity() 
       .WithColumn("name").AsString().NotNullable() 
       .WithColumn("email_id").AsString().NotNullable() 
       .WithColumn("phone").AsInt32().NotNullable() 
       .WithColumn("address").AsString().NotNullable() 
       .WithColumn("company_id").AsInt32().NotNullable(); 
     } 

    } 

Теперь мне нужно добавить еще 3 coloums имени avatar_name, avatar_type, avatar_data после имени столбца, как я могу это сделать, пожалуйста, ответьте на примере

заранее спасибо

ответ

5

Есть два способа сделать это. Либо использование выражения Alter.Table, либо выражение Create.Column.

Вот пример из wiki для Alter.Table:

Alter.Table("Bar") 
    .AddColumn("SomeDate") 
    .AsDateTime() 
    .Nullable(); 

А вот пример Create.Column:

Create.Column("avatar_name") 
    .OnTable("user") 
    .AsString() 
    .Nullable(); 

Вообще с FluentMigrator вы можете опереться на Intellisense, чтобы помочь вы. Например, если вы начнете с ввода в Create и dot, Intellisense должен показать вам Column, ForeignKey, Index, PrimaryKey, Schema, Sequence, Table и UniqueConstraint. В большинстве случаев этот процесс должен быть очень понятным и очевидным.

Существует семь корней, с которых вы можете начать: создавать, изменять, удалять, выполнять, переименовывать, вставлять и обновлять.

+0

Как я могу записать реализацию down() выше миграции? Я имею в виду удаление столбцов –

+1

@ d.Siva Использование Delete root. Пример: Delete.Column («имя_файла»). Столбец («аватар_тип»). FromTable («пользователь»); –

+0

Есть ли какая-либо разница между Create.Column (c) .OnTable (t) и Alter.Table (t) .AddColumn (c)? Я имею в виду, что они возвращают разные типы (ICreateColumnAsTypeOrInSchemaSyntax и IAlterTableColumnAsTypeSyntax). – Trinition