I am having a problem with case-insensative artifact paths

This can happen if the MySQL database you created is case-insensitive, which MySQL is by default. You can find out if your database is set incorrectly with the following command:

SELECT @@character_set_database, @@collation_database;


Here is where you can reference the collations. 

We are recommending that you make this conversion on your DB. In order to do this safely, it will take some steps:

  1. Run this rest API on each of your local repositories:

    POST http://<your-host>/artifactory/api/repairPaths/<repo>?dry=true

    Be sure to save the output to files so you do not need to run it again, it will take a while and have a medium impact on performance.

  2. After you find all of the bad path elements, you can rename them if there is no conflict:

    UPDATE nodes set node_path=REPLACE(node_path, ‘bad_case‘, ‘good_case‘) WHERE node_path like ‘sub_path/bad_case%’;

     

    UPDATE nodes set node_name=REPLACE(node_name, ‘bad_case‘, ‘good_case‘) WHERE node_type = 0 AND node_name like ‘bad_case%’;

     

    This should replace all the bad uppercase path elements for this particular path “sub_path/…” on your DB. Note that if there are files in both folder locations, you should check to see if they are the same checksum and delete one of them.

 

After you think you have everything where you want it, the process to convert the DB to the correct collation is:

1) The user performs skeleton export (system export + exclude content)

2) create new DB schema (Case Sensitive) 

3) turn off Artifactory

4) point Artifactory to new schema

5) turn on Artifactory

6) full system Import

Please let us know if you need any assistance with this.