Мне нужно переименовать первичный ключ существующей таблицы через fluent-migrator, чтобы automapper мог автоматически обнаружить столбец.Как мы можем переименовать первичный ключ таблицы в свободно-мигрирующем?
Для большинства столбцов это просто 1)
удалите любые ограничения внешнего ключа в этом столбце 2)
индексы удаления для этого столбца и 3)
переименуйте столбец. Я исторически сделал это по:
Delete.ForeignKey("foreignkeyconstraint").OnTable("mytable");
Delete.Index("UserId").OnTable("mytable");
Rename.Column("UserId").OnTable("mytable").To("UserInfo_id");
Однако, это не кажется, работает для первичных ключей, так как я не могу удалить автоматически созданный индекс для этого столбца. Каков правильный способ переименования столбца первичного ключа с помощью fluent-migrator?
С момента написания это приведет к сбою в базе данных Azure, если первичный ключ является единственным кластеризованным индексом в таблице. На этом этапе я еще не нашел обходного пути и просто оставил имя первичного ключа неизменным. Однако это может быть не решение вопроса. – Manfred
Одним из преимуществ [labilbe] (http://stackoverflow.com/users/1195872/labilbe) 's [answer] (http://stackoverflow.com/a/24406280/1488979) является 'sp_rename' будет обрабатываться это для вас. См. [MSDN] (https://msdn.microsoft.com/en-us/library/ms188351.aspx). –
@MichaelMinton Не будет работать для mysql, хотя (согласно оригинальному вопросу) –