Commit Graph

23 Commits

Author SHA1 Message Date
Kim Santiago
06a3bf6718 Handle output path and configuration in .sqlproj (#20426)
* Revert "Revert "Fix sql projects not using OutputPath in sqlproj for publishing (#19987)" (#20127)"

This reverts commit dc7522c661.

* read configuration from sqlproj

* Add more tests

* use last OutputPath in sqlproj
2022-08-25 10:25:12 -07:00
Kim Santiago
d6dab3dd18 Remove build and folder includes when converting to SDK-style project (#18889)
* remove Build and Folder Includes

* add tests

* cleanup

* rollback if there was an error during the conversion
2022-04-01 21:04:18 -04:00
Kim Santiago
cd6b39ffee add a project guid if a sql project doesn't have one (#18009) 2022-01-07 16:01:39 -08:00
Kim Santiago
6725e07ece update names for msbuild sdk style projects (#17677)
* update names for msbuild sdk style projects

* remove msbuild from names

* update comments
2021-11-16 11:23:19 -10:00
Kim Santiago
8057bf855b add support for Build Remove (#17610) 2021-11-09 10:45:56 -08:00
Kim Santiago
b8ea493f8c Add support for showing files for glob style sql projects (#17518)
* use glob to get files for new style msbuild sdk sqlproj

* add tests

* cleanup

* fix test

* don't show bin and obj files and folders

* handle other glob patterns

* fix duplicate entries getting added for glob patterns in project's folder
2021-11-05 13:29:47 -07:00
Kim Santiago
0d485ffe2b fix DefaultValue getting loaded for publish profiles (#17526)
* fix DefaultValue getting loaded for publish profiles

* add comment
2021-11-02 11:32:25 -07:00
Kim Santiago
fee9c6e071 Don't show update project warning for new style sqlproj (#17490)
* don't show SSDT update warning for new style projects

* update strings

* add checks for the 2 other ways to specify msbuild sdk

* add link to docs on how to use project sdk

Co-authored-by: Kim Santiago <kisantia@Kims-MacBook-Pro.local>
2021-10-27 12:53:38 -07:00
Alexander Ivanov
c6fec97819 Expose default database collation through 'sql-database-projects' extension API (#15538)
* Expose default database collation through 'sql-database-projects' extension API.

For the purpose of schema conversion we would need to know whether target database is configured as CI or CS. This will be used to produce a warning, if we detect a case-sensitive identifier, but database is configured as CI. In order to support this scenario we need to access `<DefaultCollation/>` property of the project.

This change adds new method to the `ISqlProject` interface that allows to read the value of the project property. There already was similar method for the SQL version/platform (`<DSP/>` property) and while working on the change, I took an opportunity to refactor the way project properties are extracted from the XML. Original code was hardcoded in the `getProjectTargetVersion` and I extracted it into separate `evaluateProjectPropertyValue` helper, that can be used in the future by any getter or access method that is supposed to return a value of the single property. This also allows us to improve the way properties are retrieved from the XML. Today the logic is very rudimentary - we read the first matching XML element with the required name. This is not correct as it does not verify the parent to be `<PropertyGroup/>`, neither it evaluates the `Condition` attributes nor property value itself. I did not invest in this, but added a TODO there explaining that the method may not perform as expected.

After the helper method was added, I updated the existing `getProjectTargetVersion` method to leverage it. The only complication here was the error throwing logic, as it was using custom error message. I preserved that, as there were tests verifying it already. For the new accessor method I did not introduce a special error message and rely on generic one I defined for use within the helper method. Additionally, for the collation we return default value of `SQL_Latin1_General_CP1_CI_AS`, if project does not have the property defined. This is what SSDT for Visual Studio shows in the UI when property is missing and I decided to align with that.

Finally, I added tests for both - original `getProjectTargetVersion` and new collation extraction method to make sure they work as expected. While working on the tests, I've noticed complaints that some rejected promises were not awaited. I added missing `await`s.
2021-05-28 12:42:21 -07:00
Kim Santiago
496fe0afa5 change afterClean to beforeBuild for removing the generated assests.json (#13736)
* change afterClean to beforeBuild for removing the generated assests.json

* fix merge conflict

* rename files
2020-12-11 11:54:35 -08:00
anjalia
d97993e518 Allow edit of sqlproj in place and reload (#11980)
* edit sql proj file

* bug fix

* updating reload project method

* adding test for reload

* formatting
2020-09-03 10:08:12 -07:00
Kim Santiago
f174dc1c77 Support for adding new SQLCMD variables to a project (#12009) 2020-09-02 11:22:36 -07:00
Sakshi Sharma
e90341b3d2 Initial Pre-post deployment changes (#11703)
* Update Open Project to display pre-post deployment scripts in the project tree

* Address comments

* Fixed tests

* Update nonDeployScripts to noneDeployScripts and throw a warning message instead of informational message for prePostDeployCount
2020-08-19 01:06:29 -07:00
Kim Santiago
f3a48da3fa Initial project references changes (#11648)
* first changes for showing project references

* add tests

* fix interface and formatting

* add try so that project still gets loaded even if dependency project loading fails

* use instanceof

* add circular reference error
2020-08-13 16:08:32 -07:00
Kim Santiago
0a1c2583cc Load connection from publish profile (#11263)
* initial changes for reading connection from profile

* connection string can now be read from publish.xml

* fix build errors and update test

* move publish profile tests to their own file

* cleanup

* update message

* fix string

* remove apiWrapper
2020-07-15 17:03:25 -07:00
Kim Santiago
b238819c89 Standardize slashes in sqlproj (#11174)
* standardize slashes that go in sqlproj

* update tests to not have os specific baselines

* fix test

* fix delete tests

* some cleanup
2020-07-06 13:17:55 -07:00
Kim Santiago
6ad33aa879 Load profile support for sql project deploy (#10948)
* load database name from profile.xml

* load sqlcmd variables from profile

* Add warning text

* add tests

* fix file filter for windows

* add comments

* show SQLCMD variables in a table

* reset dialog before testing readPublishProfile callback
2020-06-18 17:44:28 -07:00
Kim Santiago
c9569d8573 Update system database references from SSDT (#10891)
* convert system database references from SSDT

* remove empty ItemGroup if no other database references

* fix baseline files

* also update sqlproj if system database references were added in SSDT since the sqlproj got updated with ADS imports

* undo change

* move updating system db references out of updateProjectForRoundTrip()

* update test to have an already updated system db ref

* add clean target after merge from master

* add await

* addressing comments
2020-06-12 17:57:11 -07:00
Udeesha Gautam
60c0ac6bd7 Fix for #10779 to clean build to work in SSDT post ADS build (#10882)
* Add clean target

* include in test baselines

* adding one more test
2020-06-12 12:11:18 -07:00
Kim Santiago
252c31bd5d remove dacpac references baseline (#10803) 2020-06-08 16:32:00 -07:00
Kim Santiago
6e3d960d1d Add support for adding dacpac references in sql database projects (#10684)
* add dacpacs

* able to add reference to appropriate master dacpac

* able to add reference to a dacpac

* Add a few tests

* fix tests

* fix wording

* fix adding reference to same database

* add project tests

* fix test for windows

* addressing comments

* Adding another test

* update tests

* fix build error
2020-06-05 17:53:21 -07:00
Sakshi Sharma
c903112451 Tests for round tripping with SSDT projects (#10646)
* Test code for round tripping feature

* Fixed tests. Edited updateImportedTargetsToProjFile method to push newly added import target to the list.

* Added couple more tests

* Addressed comment
2020-06-03 14:02:50 -07:00
Benjin Dubishar
b3492e3f57 Creating a new database project, project items
* can create, open, and close sqlproj files
* can add sql objects to projects
2020-04-17 14:09:59 -07:00