java.io.FileNotFoundException 当 运行 datomic ensure-transactor

java.io.FileNotFoundException when running datomic ensure-transactor

我正在尝试学习 datomic,发现 datomic 设置和配置过程的学习曲线非常高。

我遇到的一个奇怪的问题——我希望这是由于一些愚蠢的错误——是当我尝试 运行 datomic ensure-transactor 时我得到一个文件未找到属性文件错误。

您必须相信我的话,该文件存在。我什至打开了文件的所有权限,以防这是权限问题。

我的属性文件看起来像这样(许可证经过编辑等)——我正在尝试为 dynamodb 的 local 实例提供设置。我还使用 brew (brew install dynamodb-local):

安装了 dyanmodb-local
################################################################

protocol=ddb-local
host=localhost
port=4334



################################################################
# See http://docs.datomic.com/storage.html

license-key=[license here]



################################################################
# See http://docs.datomic.com/storage.html
# DynamoDB storage settings

aws-dynamodb-table=datemo

# See http://docs.amazonwebservices.com/general/latest/gr/rande.html#ddb_region
# aws-dynamodb-region=us-east-1

# To use DynamoDB Local, change the protocol (above) to ddb-local.
# Comment out aws-dynamodb-region, and instead use aws-dynamodb-override-endpoint
aws-dynamodb-override-endpoint=localhost:8080



################################################################
# See http://docs.datomic.com/storage.html
# This role has read and write access to storage and
# is used by the transactor to read and write data. Optionally,
# this role also has write access to an S3 bucket used for log
# storage and to CloudWatch for metrics, if those features are
# enabled.
# (Can be auto-generated by bin/datomic ensure-transactor.)

aws-transactor-role=



################################################################
# See http://docs.datomic.com/storage.html
# This role has read-only access to storage and
# is used by peers to read data.
# (Can be auto-generated by bin/datomic ensure-transactor.)

aws-peer-role=



################################################################
# See http://docs.datomic.com/capacity.html


# Recommended settings for -Xmx4g production usage.
# memory-index-threshold=32m
# memory-index-max=512m
# object-cache-max=1g

# Recommended settings for -Xmx1g usage, e.g. dev laptops.
memory-index-threshold=32m
memory-index-max=256m
object-cache-max=128m



## OPTIONAL ####################################################


# Set to false to disable SSL between the peers and the transactor.
# Default: true
# encrypt-channel=true

# Data directory is used for dev: and free: storage, and
# as a temporary directory for all storages.
# data-dir=data

# Transactor will log here, see bin/logback.xml to configure logging.
# log-dir=log

# Transactor will write process pid here on startup
# pid-file=transactor.pid



## OPTIONAL ####################################################
# See http://docs.datomic.com/storage.html
# Memcached configuration.

# memcached=host:port,host:port,...
# memcached-username=datomic
# memcached-password=datomic



## OPTIONAL ####################################################
# See http://docs.datomic.com/capacity.html


# Soft limit on the number of concurrent writes to storage.
# Default: 4, Miniumum: 2
# write-concurrency=4

# Soft limit on the number of concurrent reads to storage.
# Default: 2 times write-concurrency, Miniumum: 2
# read-concurrency=8



## OPTIONAL ####################################################
# See http://docs.datomic.com/aws.html
# Optional settings for rotating logs to S3
# (Can be auto-generated by bin/datomic ensure-transactor.)

# aws-s3-log-bucket-id=



## OPTIONAL ####################################################
# See http://docs.datomic.com/aws.html
# Optional settings for Cloudwatch metrics.
# (Can be auto-generated by bin/datomic ensure-transactor.)

# aws-cloudwatch-region=

# Pick a unique name to distinguish transactor metrics from different systems.
# aws-cloudwatch-dimension-value=your-system-name



## OPTIONAL ####################################################
# See http://docs.datomic.com/ha.html


# The transactor will write a heartbeat into storage on this interval.
# A standby transactor will take over if it sees the heartbeat go 
# unwritten  for 2x this interval. If your transactor load leads to 
# long gc pauses, you can increase this number to prevent the standby 
# transactor from unnecessarily taking over during a long gc pause.
# Default: 5000, Miniumum: 5000
# heartbeat-interval-msec=5000



## OPTIONAL ####################################################


# The transactor will use this partition for new entities that
# do not explicitly specify a partition.
# Default: :db.part/user
# default-partition=:db.part/user

如果有任何人可以让我直截了当,我将不胜感激。

这里的答案原来是你必须 运行 ensure-transactor 来自 datomic 包的根目录。对于大多数(但不是全部)数据脚本来说,这显然是正确的。它似乎特别适用于 one-off 脚本,例如 ensure-transactor,您曾 运行 一次。