O SQL Server no Linux parece ter problemas para ler a pasta padrão compartilhada / vagrant.
Algumas informações da pasta (ls -l):
Comando:
sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'myPassword' -Q 'RESTORE DATABASE myDatabase_dev FROM DISK = "/vagrant/myDatabase.bak" WITH MOVE "myDatabase_dev" TO "/var/opt/mssql/data/myDatabase.mdf", MOVE "myDatabase_log" TO "/var/opt/mssql/data/myDatabase_log.ldf"'
Resultado:
Msg 3203, Level 16, State 1, Server ubuntu-xenial, Line 1
Read on "/vagrant/myDatabase.bak" failed: 31(A device attached to the system is not functioning.)
Msg 3013, Level 16, State 1, Server ubuntu-xenial, Line 1
RESTORE DATABASE is terminating abnormally.
Se eu mover o arquivo para qualquer outro lugar, mas esta pasta compartilhada, a restauração funcionará. A propriedade do arquivo não importa, ele pode ter qualquer proprietário, desde que não esteja na pasta compartilhada. Não consigo ver nada nas permissões de pasta / arquivo que não permitiria que o MSSQL lesse o arquivo.
Editar: mover o arquivo não é uma opção . Este é um banco de dados de teste, o real é enorme.
Por favor, alguém sabe por que e o que fazer sobre isso?