小编vma*_*oli的帖子

DBMS或SVN中的集中存储库

我正在建立一个集中存储库来存储企业架构师(来自sparx系统)生成的工件,供6-8人团队使用.最初想到托管一个PostgreSQL数据库来集中存储工件,另一个选择是使用SVN.查看EA文档,没有清楚地了解所考虑的选项的优缺点.与使用SVN相比,使用DBMS时会产生以下开销.

  1. 托管和管理DBMS
  2. 用户配置和管理DBMS
  3. 工件版本控制需要单独完成
  4. DBMS的备份等

对于SVN,从EA文档中可以看出,部署模型仅适用于最大规模为10的团队,并且文件可能会被破坏.除了这些是使用SVN托管存储库的任何瓶颈?听取在多用户环境中与Enterprise架构师合作过的人的建议会很棒.

enterprise-architect

4
推荐指数
1
解决办法
4950
查看次数

Elixir Repo.insert_all/2 和唯一约束

我今天遇到了一个相当有趣的问题。我正在尝试使用 Ecto 函数实现从 CSV 文件到我的数据库的批量插入,Repo.insert_all/2但是,有一件事困扰着我。

问题是我的上下文中的以下代码:

defmodule AppName.Roles do
  def bulk_insert(array_of_maps) do
    try do 
      Repo.insert_all(Role, array_of_maps)
    rescue
      exception in Postgrex.Error ->
        _handle_exception(exception) # or whatever
    end
  end
end 
Run Code Online (Sandbox Code Playgroud)

不过就目前而言,这似乎是一个hack。因为我知道有一个内置的变更集机制可以处理独特的约束,但我不知道如何将系统的那部分包含在Repo.insert_all/3

但是由于该insert_all函数不关心变更集,所以这更加困难。

(我当然是指unique_constraint/2

我知道我可以:

  • 使用Multi执行此,但是这创造了在后台单独的查询,而不是做它作为一个大的查询

  • 使用try rescue块保留代码,但我想看看是否有更多 Elixir-y 方法来解决这个问题,因为模式匹配的哲学让它崩溃了术语。

elixir ecto phoenix-framework

2
推荐指数
1
解决办法
734
查看次数