如何在javalite db migrator中外部化用户名和密码?

时间:2019-03-27 11:22:45

标签: javalite

我们正在使用javalite db migrator maven插件来管理不同环境中的数据库迁移。我们不想将生产环境的数据库用户名和密码存储在属性文件中。那么我们如何在运行数据库迁移时从命令行提供数据库用户名和密码?

1 个答案:

答案 0 :(得分:0)

花了几个小时并忙于javalite db-migrator之后,我发现没有直接方法可以从命令行提供数据库用户名和密码。因此,我们通过maven资源过滤器插件了解了这一点。

我添加了maven资源过滤器插件,使用该插件我将数据库用户名和密码替换为db-migrator.properties文件。下面是Maven资源过滤器插件的配置

onCollectionUpdate = querySnapshot => {
    var promises = [];
    const messages = [];

    querySnapshot.forEach(doc => {
      const { _id, text, createdAt, user } = doc.data();
      var userId = user.id
      var userRef = firebase.firestore().collection('users').doc(userId)
      promises.push(
        userRef.get()
        .then(data => {
          var user = data.data()
          var userObject = {
            _id: userId,
            name: user.name,
            avatar: user.profilePictureURL
          }
          return {
            _id,
            text,
            createdAt: new Date(createdAt.seconds),
            user: userObject
          }
        })
      )
    })

    Promise.all(promises).then(newMessages=> {
        this.setState(prevState => {
            return {
                messages: [...prevState.messages, ...newMessages],
                loading: false,
              }
        })
    })
  }

请注意,如果您使用Spring Boot进行开发,则必须在@ property @(春季方式)中添加属性占位符。