blob: 4dbf78f41237dfd06ebc8b61ae3250548aa4e693 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
# (c) 2022, John McCall (@lowlydba)
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
DOCUMENTATION = r'''
---
module: install_script
short_description: Runs migration scripts against a database
description:
- Uses the module C(DBOps) to run C(Dbo-InstallScript) against a target SQL Server database.
version_added: 0.11.0
options:
database:
description:
- Name of the target database.
required: true
type: str
path:
description:
- Directory where targeted sql scripts are stored.
type: str
required: true
schema_version_table:
description:
- A table that will hold the history of script execution. This table is used to choose what scripts are going to be
run during the deployment, preventing the scripts from being execured twice.
type: str
required: false
deployment_method:
description:
- C(SingleTransaction) - wrap all the deployment scripts into a single transaction and rollback whole deployment on error.
- C(TransactionPerScript) - wrap each script into a separate transaction; rollback single script deployment in case of error.
- C(NoTransaction) - deploy as is.
type: str
required: false
default: 'NoTransaction'
choices: ['NoTransaction', 'SingleTransaction', 'TransactionPerScript']
no_log_version:
description:
- If set, the deployment will not be tracked in the database. That will also mean that all the scripts
and all the builds from the package are going to be deployed regardless of any previous deployment history.
type: bool
default: false
required: false
connection_timeout:
description:
- Database server connection timeout in seconds. Only affects connection attempts. Does not affect execution timeout.
type: int
default: 30
required: false
execution_timeout:
description:
- Script execution timeout. The script will be aborted if the execution takes more than specified number of seconds.
type: int
default: 0
required: false
output_file:
description:
- Log output into specified file.
type: str
required: false
create_database:
description:
- Will create an empty database if missing.
type: bool
default: false
required: false
no_recurse:
description:
- Only process the first level of the target path.
type: bool
required: false
default: false
match:
description:
- Runs a regex verification against provided file names using the provided string.
type: str
required: false
author: "John McCall (@lowlydba)"
requirements:
- L(dbatools,https://www.powershellgallery.com/packages/dbatools/) PowerShell module
- L(dbops,https://github.com/dataplat/dbops) PowerShell module
extends_documentation_fragment:
- lowlydba.sqlserver.sql_credentials
- lowlydba.sqlserver.attributes.check_mode
- lowlydba.sqlserver.attributes.platform_all
'''
EXAMPLES = r'''
- name: Migrate a database
lowlydba.sqlserver.install_script:
sql_instance: test-server.my.company.com
database: AdventureWorks
path: migrations
'''
RETURN = r'''
data:
description: Modified output from the C(Install-DboScript) function.
returned: success, but not in check_mode.
type: dict
'''
|