我目前正在尝试修改与postgres数据库交互的现有API.简而言之,它基本上存储描述符/元数据,以确定实际的"资产"(通常是某种文件)存储在服务器的硬盘上的位置.
目前,可以使用任意数量的未定义键值对(即uploadedBy,addedOn,assetType等)"标记"这些"资产" .这些标记存储在一个单独的表中,其结构类似于以下内容:
+---------------+----------------+-------------+
|assetid (text) | tagid(integer) | value(text) |
|---------------+----------------+-------------|
|someStringValue| 1234 | someValue |
|---------------+----------------+-------------|
|aDiffStringKey | 1235 | a username |
|---------------+----------------+-------------|
|aDiffStrKey | 1236 | Nov 5, 1605 |
+---------------+----------------+-------------+
Run Code Online (Sandbox Code Playgroud)
assetid和tagid是来自其他表的外键.可以想象表示文件的assetid,tagid/value对是描述符的映射.
现在,API(使用Java)将所有这些键值对创建为Map对象.这包括时间戳/日期等内容.我们想要做的是以某种方式能够为键值对中的值存储不同类型的数据.或者至少在数据库中以不同方式存储它,这样如果我们需要,我们可以运行查询来检查这些标签上的日期范围等.但是,如果它们作为文本项存储在数据库中,那么我们必须使用.)知道这实际上是一个日期/时间/时间戳项,并且b.)转换成我们可以实际运行的东西查询.
到目前为止我只能想到一个想法,没有完全改变过多地改变数据库的布局.
它是扩展assettag表(如上所示)以包含各种类型的附加列(数字,文本,时间戳),允许它们为空,然后在插入时,检查相应的"键"以确定哪种类型的数据它真的是.但是,我可以看到这种实现存在很多问题.
任何PostgreSQL-Ninjas都能提出如何解决这个问题的建议吗?我最近才回到数据库交互的深层,所以我承认我有点生疏.
有没有办法在Apache Pdfbox中添加其他字体样式?
我们目前正在尝试在我们的系统中打印PDF(目前正在使用PDF-Renderer.)我一直在寻找各种替代方案(pdfbox,jpedal,jPDFPrint)
我们希望使用免费的GPL兼容库,因此我们倾向于使用pdfbox.我已经能够编写一些示例代码来打印出"有效"的pdf.见下文:
PDDocument doc;
try {
doc = PDDocument.load("test.pdf");
doc.print();
} catch (Exception e) {
// Come up with better thing to do on fail.
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,这是有效的,但我遇到的问题是PdfBox似乎没有识别pdf中使用的字体,因此改变了使用的字体.因此,该文档看起来很奇怪(间距和字符大小不同,看起来很奇怪).我经常看到以下日志消息,或类似的东西:
2014年4月16日下午2:56:21 org.apache.pdfbox.pdmodel.font.PDSimpleFont drawString警告:将<>中的字体从<NimbusMono>更改为默认字体
有没有人知道如何在pdfbox中添加新的fonttype方法(或参考)?或者除此之外,如何更改默认字体类型?
据我所知,pdfbox支持14种标准字体.不幸的是,NimbusMono不是其中之一.任何指导将不胜感激.
我使用 GitKraken 来满足我的版本控制需求,并且在很大程度上我喜欢它。我时不时会遇到一些我可以做 UI 并且必须使用命令行的事情。
我现在正在尝试做的一件事是将一些文件模式添加到我的 git repo 的.git/info/exclude文件中(注意:这不是 git ignore;我只是想排除我本地 repo 中的更改,因为文件所讨论的问题与需要提交的内容无关。)
GitKraken 似乎忽略了我对此文件所做的更改,或者我只是没有正确执行此操作。有谁知道 GitKraken 对这个文件做了什么?我似乎无法在他们的网站上找到任何关于它的文档。
谁能解释 LD_LIBRARY_PATH 和 lib-dynload 目录之间的关系在 Unix 机器上的 Python 中工作。
我问这个问题的原因是因为在我的工作地点,我们有一个可以在多台 UNIX 机器上运行的 Python 网络安装(不要问为什么,这是一堆奇怪的政治怪事。)它对于大多数系统都运行良好。较旧,但在较新的系统上,当人们尝试使用 tkinter 框架时会遇到问题(因为这些机器安装了较新版本的底层库。)
我做了一些探索,在 lib-dynload 目录中还有另一个库文件,它似乎只是指示 Python 哪个库用于 tkinter 的东西。
做了一些摆弄,我找到了一种绕过问题的方法(本质上,将库的新版本放在用户的 LD_LIBRARY_PATH 的前面似乎可以解决问题。我认为它有效,因为它在版本之前找到了该版本的库在 lib-dynload 文件夹中,但如果您尝试在一台旧机器上这样做,它就会中断),但这确实是一个不优雅的解决方案。
是否有通过Eclipse UI获取svn提交历史的简单方法?我不是指特定的文件/文件夹,而是总的来说要看最后一次提交(包括注释和更新了哪些项目/文件?)
我正在用Subclipse运行Juno。最近,我在一个项目中的多个程序包中进行了一组更改(清除了任务之间的一些声纳冲突。)一切似乎都正常,并且显示按预期工作。但是,下次我检查Sonar时,仍然存在许多违规情况,并且我发誓我刚刚解决了这些问题。我正在尝试获取已更改文件的列表,以便可以返回并逐一检查它们,以查看是否确实更改过它们。
我们希望开始使用 S3 来满足我们的一些存储需求,我正在寻找一种方法来批量上传“N”个文件。我已经使用 Java API 编写了代码来执行单个文件上传,但是有没有办法提供要传递给 S3 存储桶的文件列表?
我确实查看了以下问题is-it-possible-to-perform-a-batch-upload-to-amazon-s3,但这是两年前的问题,我很好奇情况是否发生了变化。我似乎无法在代码中找到一种方法来做到这一点。
我们想要做的是能够设置一个内部作业(可能使用 Spring 中的计划任务)来每晚转换文件组。我想有一种方法来做到这一点,而不仅仅是循环它们并为每个人做一个放置请求,或者不得不将批次压缩到 S3 上。
我继承了一个相当大的 postgreql 数据库。我们有一个每月运行的作业,用于备份现有数据库并使用我们收到的更新的供应商数据创建一个新数据库。
目前有一个小问题。在不深入了解表设置、数据建模内容等细节的情况下,我相信它可以通过简单的删除查询来修复,因为表设置为使用级联删除。
然而,从供应商提供的源生成此数据库大约需要 9 个小时,因此我总是犹豫是否要引入新的更改。我目前有该数据库的副本,我打算首先在其上运行查询,以使用户“可以”成功运行。然而,一般来说,sql 的缺点之一是,当进行删除时,输出通常只有以下几行:
查询成功返回:x 行受影响,y 毫秒执行时间。
postgres 有没有办法确定使用级联删除时从哪些表中删除了哪些行?我想在我的副本上运行查询,看看所删除的内容是否是我所期望的,至少是在哪些表被命中时。这可能吗?