主键丢失或无效

时间:2010-05-14 14:39:51

标签: python sqlite trac

我使用sqlite数据库创建我的trac enviromnets,它运行良好。

现在我想直接从数据库获取一些信息,我正在使用C#来使用System.Data.SQLite来完成。我遇到的问题是设计器中的错误导致表没有主键。

收到此错误后,我发现所有在schema中定义了多个主键的表都没有“转换”为sqlite,这些信息都会丢失。

我相信问题出现在sqlite_backend.py但是python并不是我的专长而且我很着急,所以如果你可以指导我快速修复。

更新(更多细节):

System.Data.SQLite

  

“支持ADO.NET 3.5实体   框架几乎支持所有   实体框架功能   Sql Server支持并传递99%的   MS的EFQuerySamples演示中的测试   应用“。

     

Visual Studio 2005/2008设计时   支持您可以添加SQLite   连接到服务器资源管理器,   使用查询创建查询   设计师,拖放表到一个   键入的数据集等等!

当我将表格拖到设计器时,某些表格不会出现在设计器上。原则是,

  

“表/视图'main.attachment'确实如此   没有定义主键,没有   可以推断出有效的主键。   此表/视图已被排除。至   使用实体,您将需要   检查您的架构,添加正确的   键,并取消注释。“

问题是这样,没有实体=没有数据。

更新(更多信息):

我的目标不是改变数据模型。

trac schema附件 auth_cookie 枚举 node_change 权限会话 session_attribute ticket_change ticket_custom 是使用主键定义的。

当我浏览文件trac.db(默认)时,未使用模式中指定的primary_keys定义表。

我想要一个解决方案来解决trac sqlite db的litle 功能。 我不认为这是创建后编辑表格的最佳解决方案,以添加未创建的pk。

更新

任何想法?!

1 个答案:

答案 0 :(得分:0)

您可能需要查看Trac Database API。它是用Python编写的,但你可以很容易地在C#中重写它。至少它会为您找到解决方案的起点。 http://trac.edgewall.org/wiki/TracDev/DatabaseApi