【问题标题】:Best Practice - How to extend the DB in a ServiceStack.OrmLite .NET project?最佳实践 - 如何在 ServiceStack.OrmLite .NET 项目中扩展数据库?
【发布时间】:2017-01-20 01:01:18
【问题描述】:

我最近接受了一个 .Net 项目,该项目通过 ServiceStack REST API 从 Microsoft SQL 数据库公开DAOs。服务器在 IIS 7.5 上运行

AppHost.Configure 中,完整的数据库架构是这样创建的...

var dbFactory = new OrmLiteConnectionFactory(DI.DefaultConnectionString, SqlServerOrmLiteDialectProvider.Instance);
        using (var db = dbFactory.OpenDbConnection())
        {
            if (!db.TableExists(db.GetTableName<SomeSpecificDAO>())) //Create table if not exists
            {
                db.CreateTable<SomeSpecificDAO>();
                db.Insert(new SomeSpecificDAO { Data = 0, AnotherData = "", AnSoOne =  });
            }

        /// alot more tables follow....
        }

当我现在想扩展 DAO(例如,因此向表中添加新列)时,我会在 Visual Studio 中执行此操作,对其进行测试,如果它有效,我将通过 Microsoft SQL 远程添加列实时测试服务器上的 Server Management Studio,因为我不想丢失数据库中的任何数据。当只有一列要添加时,这不是很快,如果添加了更多的表/列或 f.e.,这可能会非常麻烦。单元格的数据类型已更改。

在 Visual Studio 和测试系统中更新数据库的最佳做法是什么?是否有可能采用“代码优先方法”,我只扩展 DAO 然后更新数据库?

【问题讨论】:

    标签: c# .net iis-7.5 ormlite-servicestack


    【解决方案1】:

    看看这个existing thread in the ServiceStack Customer Forums,它解释了处理数据库架构更改的不同策略。

    【讨论】:

    • 我认为 DbUp 是我一直在寻找的。据我了解,这也意味着我也将 DbUp 用于 db 架构设置,我在问题中对此进行了描述,因此我只有在我在服务器上“发布”应用程序时部署的迁移脚本。跨度>
    猜你喜欢
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    相关资源
    最近更新 更多