I’m giving cfmigrations another shot to see if I can use it in my workflow. Unfortunately, it doesn’t appear to be playing nicely with MSSQL Server on Lucee or Adobe. It’s been awhile, so maybe there’s an oversight on my end.
I created a new Coldbox 7 app using coldbox create app
and configured the .env file as follows:
# ColdBox Name and Environment
APPNAME=MyApp
ENVIRONMENT=development
# Database Information
DB_CONNECTIONSTRING=jdbc:macromedia://127.0.0.1:1433/mydsn?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useLegacyDatetimeCode=true&allowPublicKeyRetrieval=true
DB_CLASS=macromedia.jdbc.MacromediaDriver
DB_BUNDLENAME=
DB_BUNDLEVERSION=
DB_DRIVER=MSSQL
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=mydsn
DB_USER=sa
DB_PASSWORD=thisisnotapassword
// ... etc
I can confirm that the DSN connection works in the Lucee and ACF admin
I installed CFmigrations via install cfmigrations
and ran migrate init
to create a default .cfmigrations.json file. I updated the defaultGrammar
to MSSQL so the final file looked like this:
{
"default": {
"manager": "cfmigrations.models.QBMigrationManager",
"migrationsDirectory": "resources/database/migrations/",
"seedsDirectory": "resources/database/seeds/",
"properties": {
"defaultGrammar": "SqlServerGrammar@qb", <-- updated from default 'AutoDiscover@qb'
"schema": "${DB_SCHEMA}",
"migrationsTable": "cfmigrations",
"connectionInfo": {
"password": "${DB_PASSWORD}",
"connectionString": "${DB_CONNECTIONSTRING}",
"class": "${DB_CLASS}",
"username": "${DB_USER}",
"bundleName": "${DB_BUNDLENAME}",
"bundleVersion": "${DB_BUNDLEVERSION}"
}
}
}
}
When I ran migrate install
I got the following error:
ERROR (6.1.0+00813)
There is no bundleName
key in your connectionInfo. Please create one with the necessary values. See GitHub - commandbox-modules/commandbox-migrations
I looked at the Github URL in the error and noted a small point about how MySql and Commandbox5 need some specific values set in the bundleName
and bundleVersion
keys. However, I don’t see any notes for those using MSSQL.
Speaking of which, my ColdBox .env files have never needed DB_BUNDLENAME
or DB_BUNDLEVERSION
before today, so these are new to me. It’s not clear as someone who uses MSSQL Server, where to get these values from the Lucee Admin, or ACF Admin. Regardless, leaving them blank has never prohibited my apps from working, so I’ve always left them with empty values.
Here are some things I tried to resolve the problem:
-
Tried setting the .cfmigrations config
defaultGrammer
back to autodiscover. -
Tried updating my .env file with the explicit values for
bundleName
andbundleVersion
as specified in the commandbox-migrations readme.
-
Tried changing the engine in server.json to Adobe@2021
I ran server forget
and server start
before each attempt above and none of them got me any closer to running migrate install
successfully.
Please let me know if you have any tips or suggestions on troubleshooting further.