Akka.Net SQL服务器持久性配置似乎无法加载

时间:2018-02-21 10:12:46

标签: akka.net akka.net-persistence

我正在尝试将现有的(演示)项目从Akka.Net 1.0.8升级到更新的(1.3.2或其他)。

我坚持要加载SQL服务器持久性。我采取了以下步骤:

  1. 创建了一个空白项目,并包含了Akka.Persistence.SqlServer包及其所有依赖项
  2. here复制HOCON配置示例:
    • 将数据库连接字符串更改为现有数据库
    • 将自动初始化设置为'on'
    • 修正了akka.persistence.journal-store.sql-server.plugin-dispatcher
    • 中的双引号问题
  3. 创建了一个演员系统
  4. 检查了SQL Server配置是否存在我的连接字符串
  5. 结果:

    • 1.3.2 :连接字符串不存在(似乎是默认的回退配置),数据库中没有任何反应
    • 1.0.8 :存在连接字符串,配置似乎正确,表在空数据库中创建。

    这是我使用的HOCON配置:

    akka.persistence{
    journal {
      plugin = "akka.persistence.journal.sql-server"
        sql-server {
            # qualified type name of the SQL Server persistence journal actor
            class = "Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer"
    
            # dispatcher used to drive journal actor
            plugin-dispatcher = "akka.actor.default-dispatcher"
    
            # connection string used for database access
            connection-string = "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=AkkaPersistence;Integrated Security=True"
    
            # default SQL commands timeout
            connection-timeout = 30s
    
            # SQL server schema name to table corresponding with persistent journal
            schema-name = dbo
    
            # SQL server table corresponding with persistent journal
            table-name = EventJournal
    
            # should corresponding journal table be initialized automatically
            auto-initialize = on
    
            # timestamp provider used for generation of journal entries timestamps
            timestamp-provider = "Akka.Persistence.Sql.Common.Journal.DefaultTimestampProvider, Akka.Persistence.Sql.Common"
    
            # metadata table
            metadata-table-name = Metadata
        }
    }
    
    snapshot-store {
      plugin = "akka.persistence.snapshot-store.sql-server"
        sql-server {
    
            # qualified type name of the SQL Server persistence journal actor
            class = "Akka.Persistence.SqlServer.Snapshot.SqlServerSnapshotStore, Akka.Persistence.SqlServer"
    
            # dispatcher used to drive journal actor
            plugin-dispatcher = "akka.actor.default-dispatcher"
    
            # connection string used for database access
            connection-string = "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=AkkaPersistence;Integrated Security=True"
    
            # default SQL commands timeout
            connection-timeout = 30s
    
            # SQL server schema name to table corresponding with persistent journal
            schema-name = dbo
    
            # SQL server table corresponding with persistent journal
            table-name = SnapshotStore
    
            # should corresponding journal table be initialized automatically
            auto-initialize = on
        }
    }
    }
    

    有没有办法解决加载HOCON配置的问题?

1 个答案:

答案 0 :(得分:1)

麻烦在于Akka.Persistence.SqlServer中使用的SQL在1.0.8和1.3.2之间发生了显着变化。

恕我直言,如果它只是一个演示应用程序,请删除并重新创建该表。这是最简单的路线。

否则,您将不得不编写一个迁移脚本,以便从1.0.8格式转换为1.3.2中的稳定格式:https://github.com/akkadotnet/Akka.Persistence.SqlServer#table-schema