Error: Muliple files found matching pattern ./*.sql

visibility 4 event 2023-01-09 access_time 30 days ago language English
more_vert

Issue context

When using GitHub actions to deploy SQL scripts to Azure SQL database, the following error appears:

      # Deploy database scripts
      - uses: azure/sql-action@v2
        with:
          connection-string: ${{ secrets.DB_CONN_STRING }}
          path: "./*.sql"

The error occurred because there are multiple files matched by the wildcard "./*.sql". Currently this action doesn't support multiple SQL files.

Resolutions

To fix this issue, there are multiple approaches.

Concatenate files into one

Since only one script file is supported, we can concatenate multiple files into one. This can be done via another action task. The following code snippet provides one example:

      - name: Concat sql scripts
        run: |
          pushd ./scripts/sql
          find *.sql | sort -n | xargs cat >> /path/to/destination/script.sql
          popd

The above script change directory to a folder named 'scripts/sql' and then find all the SQL files; at last, it concatenates them into one single file.

Run multiple actions

We can also run the azure/sql-action multiple times:

      - uses: azure/sql-action@v2
        with:
          connection-string: ${{ secrets.DB_CONN_STRING }}
          path: "./script-1.sql"

      - uses: azure/sql-action@v2
        with:
          connection-string: ${{ secrets.DB_CONN_STRING }}
          path: "./script-2.sql"

      - uses: azure/sql-action@v2
        with:
          connection-string: ${{ secrets.DB_CONN_STRING }}
          path: "./script-N.sql"

Use a matrix

If you want to dynamically setup these tasks, you can use matrix feature for your job.  For examples, please refer to the official documentation Using a matrix for your jobs - GitHub Docs. You may want to use max-parallel property to limit the concurrency. If the sequence of execution is important, please use the previous approaches. 

info Last modified by Kontext 30 days ago copyright This page is subject to Site terms.
Like this article?
Share on

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts