当前位置: 首页 > 知识库问答 >
问题:

启动期间未执行SQL脚本

龙洛城
2023-03-14

我希望在启动Spring boot应用程序时始终运行SQL脚本。我添加了这个液化酶配置:

application.yml

spring:
  datasource:
    platform: org.hibernate.dialect.PostgreSQL95Dialect
    url: jdbc:postgresql://10.10.10.10:5432/test
    driverClassName: org.postgresql.Driver
    username: root
    password: test
  liquibase:
    changeLog: 'classpath:db/changelog/db.changelog-master.yaml'
    dropFirst: false
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    database: postgresql

db。变更日志主机。亚马尔

databaseChangeLog:
  - include:
      file: db/changelog/changes/ch_0001/changelog.yaml

变更日志。亚马尔

databaseChangeLog:
  - include:
      file: db/changelog/changes/ch_0001/data/data.yaml

data.yaml

databaseChangeLog:
  - changeSet:
      id: 0001
      author: test
      dbms: postgres
      runAlways: true # WARNING - remove this before prod - it will run every time with clean data
      changes:
        - sqlFile:
            - relativeToChangelogFile: true
            - path: data.sql

data.sql

INSERT into tasks SELECT generate_series(1,355) AS id,
    left (md5(random()::text), 10) AS business_name,
    (select NOW() + (random() * (NOW()+'90 days' - NOW())) + '30 days') AS created_at,
    left (md5(random()::text), 10) AS meta_title,
    left (md5(random()::text), 10) AS status,
    left (md5(random()::text), 10) AS title,
    left (md5(random()::text), 10) AS task_type,
    (select NOW() + (random() * (NOW()+'90 days' - NOW())) + '30 days') AS updated_at;

数据库表应该填充测试数据,但事实并非如此。我看不到日志data.sql文件执行。

你知道问题出在哪里吗?

共有1个答案

呼延博易
2023-03-14

似乎您没有添加完整配置。

尝试添加这些。

spring:
  liquibase:
    change-log: classpath:db/changelog/db.changelog-master.yaml
    url: {same as spring.datasource.url}
    user: {same as spring.datasource.username}
    password: {same as spring.datasource.password}
    enabled: true

对于Postgres DBdbmd值为postgresql。不是postgres。参考-这里

更新了数据。yml

databaseChangeLog:
  - changeSet:
      id: 0001
      author: test
      dbms: postgresql
      runAlways: true # WARNING - remove this before prod - it will run every time with clean data
      changes:
        - sqlFile:
            - relativeToChangelogFile: true
            - path: data.sql
 类似资料:
  • 问题内容: 我有一个批处理文件,该文件在sqlplus中运行一个SQL脚本,并将输出发送到日志文件: sqlplus用户/密码 RowCount.log 我的日志文件包含以下内容: 等等,但是它有数千行输出,因此很难确定哪个结果属于哪个语句。 我想在输出中添加一些格式,以便我可以识别发生了什么。可以对执行的语句进行回显,也可以在脚本中手动插入一些“ echo”语句。理想情况下,它看起来像这样: 问

  • 问题内容: 如何自动执行给定文件夹中所有SQL脚本的运行过程? 问题答案: 编写Windows脚本,使用FOR构造遍历文件,并使用SQLCMD实用程序执行每个文件。

  • 问题内容: 我面临一个非常烦人的问题。我已经在Notepad ++中编写了一些SQL脚本。现在,当我尝试通过SQL * Plus(在Windows 7上通过命令行)执行它们时,出现诸如的错误。 然后,我将脚本复制并粘贴到“ SQL Developer工作表”窗口中,单击“运行”按钮,脚本执行成功,没有任何问题/错误。 经过长时间的调查,我开始认为SQL * Plus的某些空白(包括换行符和制表符)

  • 我不清楚浏览器是在脚本运行时还是在执行后启动回流。因此,基本上,如果我有一个循环(100次迭代),将一个元素插入DOM,浏览器会停止脚本执行,用插入的元素重新计算布局,在每一步中重新绘制?然后下一步是什么?或者它不停地插入100个元件,然后再回流? 要将其转换为代码,这两个代码之间是否存在性能差异? 还是更好? 或者,有没有更好、更有效的解决方案,可以在DOM中插入大量元素(10000个或更多),

  • Dockerfile在Tomcat中正常工作。tomcat启动后,我必须触发ant脚本。catalina.sh是从一个单独的run.sh文件启动的。因此,Dockerfile具有CMD[“/tmp/run.sh”] run.sh文件有以下几行: catalina.sh运行 antscript Tomcat启动,但不调用ant脚本。我也尝试了其他的可能性,比如: catalina.sh运行&antS

  • 网站会话在脚本执行期间过期。我有4门课,有15-16种测试方法。而我使用测试中的数据作为一个套件来执行所有操作。xml。 场景:在用户登录后执行搜索 我使用以下条件 所以我的问题是: 是我的网站问题还是网络驱动问题? 为什么会话会在页面导航上获得注销?我已经尝试了和,但没有成功。 有没有人能给我一个这样的问题的线索?