小编Ash*_*ynd的帖子

通缉:具有可逆迁移的数据库迁移工具/库.(与Spray框架一起使用)

是否已有一个工具或库可以支持可逆(例如,向上和向下)数据库迁移,并且可以与Spray框架一起使用?(显然斯卡拉)

到目前为止,我们正在使用FlyWay,它运行得相当好,但无法回滚并重新应用失败的迁移(一个Play框架).在早期开发阶段,当事情发生很大变化时,这可能非常方便.

我找到了这个库:https://github.com/nafg/slick-migration-api,它引用了所谓的内容ReversibleMigration,但它似乎并不是我想要的(一种简单的上下定义方式)迁移).

scala database-migration spray

5
推荐指数
0
解决办法
147
查看次数

zsh vs for循环中的bash差异,什么是zsh方式?

假设有一个简单的脚本.

for file in `hadoop classpath | tr ':' ' ' | sort | uniq`; do echo $file; done
Run Code Online (Sandbox Code Playgroud)

和原始输出hadoop classpath 看起来像这样(文件夹列表在哪里寻找罐子):

zsh %> hadoop classpath  
/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/*:/usr/local/hadoop/share/hadoop/common/*:/usr/local/hadoop/share/hadoop/hdfs:/usr/local/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/share/hadoop/yarn/lib/*:/usr/local/hadoop/share/hadoop/yarn/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/contrib/capacity-scheduler/*.jar
Run Code Online (Sandbox Code Playgroud)

如果我在Bourne shell中运行上面的脚本,结果将是这样的(它将给出指定类路径中包含的所有jar的唯一列表):

bash-4.1$  for file in `hadoop classpath | tr ':' ' ' | sort | uniq`; do echo $file; done
/usr/local/hadoop/etc/hadoop
/usr/local/hadoop/share/hadoop/common/lib/activation-1.1.jar
/usr/local/hadoop/share/hadoop/common/lib/asm-3.2.jar
/usr/local/hadoop/share/hadoop/common/lib/avro-1.7.4.jar
/usr/local/hadoop/share/hadoop/common/lib/commons-beanutils-1.7.0.jar
/usr/local/hadoop/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar
/usr/local/hadoop/share/hadoop/common/lib/commons-cli-1.2.jar
/usr/local/hadoop/share/hadoop/common/lib/commons-codec-1.4.jar
...
Run Code Online (Sandbox Code Playgroud)

然而,在zsh中,我仍然得到:

zsh %> for file in `hadoop classpath | tr ':' ' ' | sort | uniq`; do echo $file; done        
/usr/local/hadoop/etc/hadoop …
Run Code Online (Sandbox Code Playgroud)

bash shell zsh

3
推荐指数
1
解决办法
1039
查看次数

检查已完成 Promise 值的正确方法?

上下文:我有一个函数,我想在开始时检查某个 Promise 是否 a) 已经完成并且 b) 具有某个值。

Scala 中有一个方法可以检查 Promise 是否已经完成(从 2.11.5 开始),即isCompleted. 然而,当你想要获得已经完成的 Promise 的值时,看起来你必须像这样写一个令人讨厌的链:

val p = Promise[Boolean]
val result = p.future.value.get.toOption.get
Run Code Online (Sandbox Code Playgroud)

(为了完整性:我正在考虑写一些类似的东西:

if (p.isCompleted && p.future.value.get.toOption.get == true)
Run Code Online (Sandbox Code Playgroud)

但对代码的丑陋感到震惊:))

没有更好的办法吗?或者这是否表明我没有按照预期的方式使用它?

concurrency scala promise

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

使用枚举值进行 MySQL 查询

我在 MySQL 5.6.19 中有以下结构。

CREATE TABLE `metadata` (
`md5` char(32) NOT NULL,
`match` enum('none','md5','similarity') DEFAULT NULL
) 
Run Code Online (Sandbox Code Playgroud)

我在执行这样的查询时遇到错误:

select * from metadata where match = 'md5';
Run Code Online (Sandbox Code Playgroud)

错误是:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 '= 'md5'' 附近使用的正确语法

表中有多个条目和行可以与查询匹配。但MySQL拒绝这样做。知道原因吗?谢谢!

mysql sql enums reserved-words

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