dima117 / ecm7migrator Goto Github PK
View Code? Open in Web Editor NEWВерсионная миграция структуры БД для .NET
Версионная миграция структуры БД для .NET
Здравствуйте! Хочу применить Ваш мигратор
у себя в проекте но при
выполнении собственно операции миграции
происходит ошибка: Dialect does not
support DbType.Guid
скрипт Nant:
<project default="migrate">
<loadtasks assembly="./ECM7.Migrator.NAnt.dll" />
<target name="migrate">
<property name="version" value="2010031905" />
<migrate
dialect="ECM7.Migrator.Providers.Oracle.OracleDialect,
ECM7.Migrator.Providers.Oracle"
connectionstring="Data Source=localhost;User ID=system;Password=oracle;"
migrations="bin/Debug/ARexMigrator.exe"
to="${version}" />
</target>
</project>
часть листинга миграции:
Database.AddTable("MainTable40101",
new Column("id", DbType.Guid, ColumnProperty.PrimaryKey),
new Column("id_storedformdata", DbType.Guid),
new Column("_3", DbType.Decimal),
new Column("_4", DbType.Decimal),
new Column("_5", DbType.Decimal),
new Column("_6", DbType.Decimal),
new Column("_7", DbType.Decimal),
new Column("_8", DbType.Decimal),
new Column("_9", DbType.Decimal),
new Column("_10", DbType.Decimal),
new Column("_11", DbType.Decimal),
new Column("_12", DbType.Decimal),
new Column("_13", DbType.Decimal)
);
Original issue reported on code.google.com by [email protected]
on 19 Mar 2010 at 12:50
Добрый день.
Подскажите можно ли создавать индексы
через методы?
Если при создании поля указывать
ColumnProperty.Indexed, то при миграции в
ORACLE 10g вылетает ошибка.
Ошибка ясна, индексы в oracle так не создаются
index("имя_поля").
Отдельно метода для создания индекса я не
нашел.
К тому же мне надо создать составной индекс.
Или придется их создавать через Database.For<>?
Original issue reported on code.google.com by [email protected]
on 9 Mar 2010 at 8:05
Проект интересный, но меня интересует
поддержка PostgreSQL, которая была
удалена "за ненадобностью"...
Насколько сложно вернуть удаленный код,
отвечающий за работу с этой СУБД?
Original issue reported on code.google.com by [email protected]
on 17 Nov 2009 at 9:26
Есть пару вопрос по использования
мигратора в своих целях и хотел задать
вопросы.
Original issue reported on code.google.com by [email protected]
on 21 Jul 2011 at 2:56
What steps will reproduce the problem?
1. Запустить консоль без пераметров;
What is the expected output? What do you see instead?
Вывод справочной информации.
Please use labels and text to provide additional information.
Необработанное исключение:
System.IndexOutOfRangeException: Индекс
находился вне границ массива.
Original issue reported on code.google.com by [email protected]
on 19 Nov 2009 at 4:56
Попробовал использовать дамп схемы для
создания первоначальной миграции по
существующей БД в Oracle. Оказалось, что
SchemaDumper дампит только
таблицы, столбцы и их типы. Дополнил
функциональность дампа:
1) Более корректные типы столбцов
2) Первичные ключи
3) Индексы
4) Внешние ключи
Прикладываю патч, надеюсь, что изменения
попадут в следующий релиз.
Original issue reported on code.google.com by [email protected]
on 28 Apr 2010 at 10:03
Attachments:
если мигратор не находит строку
подключения, то там нал референс еррор
летит
лучше выкинуть что-то более адекватное
Original issue reported on code.google.com by [email protected]
on 1 Dec 2011 at 10:47
В примере работы с API в вики неправильная
строка для параметра providerTypeName
("ECM7.Migrator.Providers.SqlServer.SqlServerDialect,
ECM7.Migrator.Providers.SqlServer"), наверно должно быть
"ECM7.Migrator.Providers.SqlServer.SqlServerCeTransformationProvider,
ECM7.Migrator.Providers.SqlServerCeTransformationProvider". Долго
мучился с этим пока не посмотрел исходники.
Original issue reported on code.google.com by [email protected]
on 22 Aug 2013 at 10:02
Добрый день.
Дмитрий,
выдержка из wiki:
"использовать консольное приложение
ECM7.Migrator.Console (это самый
простой способ);"
примера использования консольного
мигратора так и не нашел (в wiki так же
не описано),
внутренний хелп консольного приложения
настолько скуден,
что из него не понятно как же все таки им
пользоваться.
поправьте пожалуйста, иначе придется
отказаться от вашего продукта в виду
того что отсутствует нормальное описание.
спасибо.
Original issue reported on code.google.com by [email protected]
on 25 Nov 2009 at 5:15
нужна возможность устанавливать timeout для
команды
Original issue reported on code.google.com by [email protected]
on 30 Jan 2012 at 8:18
Добрый день!
Сейчас анализируем ecm7migrator для возможности
внедрения в наш проект.
Ознакомился с описанием проекта на
code.google.com, прочитал Вашу статью
на хабре и остались открытыми следующие
вопросы:
1) - Номер миграции задается как long-тип. То
есть это целочисленное
число. Сталкивались ли Вы в своей практике
использования мигратора с
бранчевыми версиями и мэйнстримами, а
именно:
1.1) - Нумерация миграций для бранча и для
мэйнстрима (я вижу сейчас
только один выход - давать для бранча
определенный диапазон изменений. Как
сами понимаете - это не очень хорошее
решение - бранч может оказаться
достаточно большим...);
1.2) - Миграция бранча на мэйнстрим (в бранче
есть незапущенные миграции,
но номера миграций в мэйнстриме имеют
более высокий порядковый номер.
Соответственно исходя из логики мигратора
- они не запустятся...). Я не
вижу способо как это сделать мигратором;
1.3) - Правильно ли я понимаю, что задать
несолько DLL-которые содержат
миграции возможно только через API
мигратора? MsBuild-подход и Nant-подход
такой возможности не имеют?
2) - Так и не нашел однозначного ответа по
использованию мигратора при
создании БД с нуля. Что здесь конкретно
интересует:
2.1) - Правлиьно ли я понимаю, что пока
мигратором нельзя создать БД с
нуля? Если так - то это говорит о том что в
проекте все равно должен
оставляться функционал по созданию БД из
скрипта (с нуля) и уже только
потом на сцену выходит мигратор. Все верно?;
2.2) - На хабре Вы писали о том, что
используете Down-методы миграций
открата изменений для Unit-тестов. Не могли
бы немного более подробно
рассказать об этом;
Заранее спасибо за консультацию!
Original issue reported on code.google.com by [email protected]
on 27 Jan 2010 at 12:54
Для PostgreSql нужен тип хранения даты с
поддержкой UTC (тип timestamptz)
Original issue reported on code.google.com by [email protected]
on 15 Nov 2014 at 7:20
нужно добавить перегруженную версию
метода ExecuteFromResource, которая принимает
только имя ресурса и пытается загрузить
его из той же сборки, в которой находится
выполняемая миграция
Original issue reported on code.google.com by [email protected]
on 8 Nov 2011 at 8:46
при формировании удобочитаемых названий
миграций обрабатывать символ "_" аналогично
пробелу
Original issue reported on code.google.com by [email protected]
on 8 Nov 2011 at 9:11
ошибка формирования индексов из
нескольких колонок при создании таблицы в
Oracle;
Original issue reported on code.google.com by [email protected]
on 12 Mar 2010 at 10:33
Приветствую!
Очень понравилась идея и реализация
инструмента, давно надо было уже)
Но есть одна критическая проблема. При
попытки миграции на последнюю версию
провайдер кидает следующее исключение:
SELECT COUNT(table_name) FROM user_tables WHERE lower(table_name) =
'schemainfo'
System.InvalidCastException: Заданное приведение
является недопустимым.
в Oracle.DataAccess.Client.OracleDataReader.GetInt64(Int32 i)
в ECM7.Migrator.Providers.TransformationProvider.get_AppliedMigrations()
в ECM7.Migrator.BaseMigrate..ctor(List`1 availableMigrations,
ITransformationProvider provider, ILogger logger)
в ECM7.Migrator.MigrateAnywhere..ctor(List`1 availableMigrations,
ITransformationProvider provider, ILogger logger)
в ECM7.Migrator.Migrator.MigrateTo(Int64 version)
в ECM7.Migrator.Migrator.MigrateToLastVersion()
Используется Oracle 10g XE.
Original issue reported on code.google.com by [email protected]
on 17 Nov 2009 at 8:03
Please report this in a more appropriate place.
Original issue reported on code.google.com by [email protected]
on 20 Apr 2013 at 2:14
This can be somewhat confusing as decimal is commonly used for values with a
few digits after the dot. As of now, these digits are lost when value is saved
to the database.
Original issue reported on code.google.com by [email protected]
on 8 Dec 2013 at 7:52
Привет.
Дмитрий,
поясните в примерах и документации как
необходимо накатывать Миграции.
что именно интересует:
- для того чтобы создать новую миграцию, мне
нужно создать новый проект и
там описывать изменения или все делается в
пределах одного проекта (пишутся
и хранятся миграции)?
Original issue reported on code.google.com by [email protected]
on 18 Nov 2009 at 12:05
Почему в NuGet доступен только сам фреймворк,
но нет ECM7.Migrator (для работы через API) и
провайдеров БД?
Original issue reported on code.google.com by [email protected]
on 22 Aug 2013 at 10:08
Доброго времени суток.
Очень интересный и полезный продукт у вас.
Только вот проблему одну нашёл, она не
слишком серьёзная, но всё же...
MsSql 2008
создаю следующую таблицу вашей тулзой:
Database.AddTable("Users",
new Column("id", DbType.Int32),
new Column("user_name", new ColumnType(DbType.String, -1))
);
При попытки мигрировать таким кодом
генерируется sql:
CREATE TABLE [Versions] ([id] INT NOT NULL PRIMARY KEY,[number]
NVARCHAR(-1),[plugin_id] INT)
а хотелось бы такой:
create table [dbo].Users {
[id] [int],
[user_name][nvarchar](max)
}
Или может есть способ получить волшебный
(max) в размере типа? я не нашёл.
Если нет, предлагаю решить эту проблему
следующим путём:
Если типом dbType является Varchar, Nvarchar или VarBinary
и задан size -1 то запрос строится как [varchar](max),
[nvarchar](max) или [nvarbinary](max) соответственно.
http://msdn.microsoft.com/ru-ru/library/ms127243.aspx
Код набран руками. Могут быть ошибки.
Original issue reported on code.google.com by [email protected]
on 21 Jul 2013 at 7:10
названия схемы БД в названиях объектов
Original issue reported on code.google.com by [email protected]
on 8 Nov 2011 at 1:39
привет.
пишет unknown-пользователь Хабрахабр.
- Хочу сказать спасибо за данный проект (он
действительно актуален и будет
полезен), т.к. его собрат уже видимо не
актуален и следовательно не
поддерживается;
- Зачем хочу спросить, почему публикуетесь
на Google.Code а не скажем на
Codeplex?
- откуда появилось такое странное название
проекту?
- ну и хотелось бы увидеть хоть какие-то
координаты для feedback-а кроме
этой формы;
- выложите побольше примеров использования
+ документацию;
определенно буду пользоваться!
p.s. люди добрые дайте invate на хабрахабр (bykinag
at gmail point com) :)
спасибо.
Original issue reported on code.google.com by [email protected]
on 16 Nov 2009 at 2:52
NuGet пакет не содержит сборку
ECM7.Migrator.Providers.Firebird.dll, хотя в архиве,
загружаемом с code.google.com он есть.
Добавьте пожалуйста вышеуказанную сборку
в пакет.
Original issue reported on code.google.com by [email protected]
on 27 Mar 2013 at 8:49
1. Создать миграции в сборке помеченной
атрибутом
[assembly: AllowPartiallyTrustedCallers]
2. Попытать мигрировать БД
*Current:*
Inheritance security rules violated by type:
'ECM7.Migrator.Providers.Validation.ProviderValidationAttribute'. Derived types
must either match the security accessibility of the base type or be less
accessible.
*Expected:*
Должно работать с PartialTrust сборками.
Данная возможность важна для
использования на сайтах, которые как
правило, хостяться на shared hosting c Medium Trust.
Original issue reported on code.google.com by [email protected]
on 4 May 2012 at 8:22
We really use that functionality to separate schema migrations from static data
migrations. For db unit testing we execute only schema migrations in order to
have clean testing environment.
Original issue reported on code.google.com by [email protected]
on 14 Jun 2011 at 1:35
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.