#wip: Fixing the SQL Server Scripts.
This commit is contained in:
parent
f9981e1f19
commit
d4f7dd60c9
@ -1,5 +1,5 @@
|
||||
from mcr.microsoft.com/mssql/server:2022-latest
|
||||
expose 1433/tcp
|
||||
expose 31433/tcp
|
||||
user root
|
||||
env ACCEPT_EULA=Y
|
||||
# env MSSQL_SA_PASSWORD=Abc123.. # Incompatible with lastest Docker versions.
|
||||
4
Dockers/SQLServer/rebuild.bat
Normal file
4
Dockers/SQLServer/rebuild.bat
Normal file
@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
|
||||
docker images -q anp:sql-server | findstr "anp:sql-server">nul || docker image remove anp:sql-server --force
|
||||
docker build -f %~dp0/Dockerfile -t anp:sql-server %~dp0 --no-cache
|
||||
@ -333,6 +333,7 @@ export const Components = (function(){
|
||||
name : name,
|
||||
data_i18n : name,
|
||||
data_i18n_without : true,
|
||||
autocomplete : "cosa1 cosa2 cosa3",
|
||||
placeholder : text + "...",
|
||||
...self.set_attributes([
|
||||
["id", "identifier"],
|
||||
@ -376,6 +377,7 @@ export const Components = (function(){
|
||||
name : name,
|
||||
data_i18n : name,
|
||||
data_i18n_without : true,
|
||||
autocomplete : "off",
|
||||
placeholder : text + "...",
|
||||
...self.set_attributes([
|
||||
["id", "identifier"],
|
||||
@ -415,6 +417,7 @@ export const Components = (function(){
|
||||
name : name,
|
||||
data_i18n : name,
|
||||
data_i18n_without : true,
|
||||
autocomplete : "off",
|
||||
placeholder : text + "...",
|
||||
pattern : "[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$",
|
||||
...self.set_attributes([
|
||||
@ -454,6 +457,7 @@ export const Components = (function(){
|
||||
name : name,
|
||||
data_i18n : name,
|
||||
data_i18n_without : true,
|
||||
autocomplete : "off",
|
||||
placeholder : text + "...",
|
||||
...self.set_attributes([
|
||||
["id", "identifier"],
|
||||
|
||||
@ -12,6 +12,15 @@ pyp3 install websockets selenium selenium-wire pyodbc --break-system-packages
|
||||
|
||||
```
|
||||
|
||||
```batch
|
||||
@echo off
|
||||
|
||||
@rem setuptools==69.5.1 => Lastest miss some dependences.
|
||||
@rem blinker==1.7.0 => Lastests has a security error.
|
||||
pyp install websockets pyodbc requests selenium selenium-wire setuptools==69.5.1 blinker==1.7.0
|
||||
|
||||
```
|
||||
|
||||
# Settings
|
||||
|
||||
## Root Paths
|
||||
|
||||
@ -13,28 +13,8 @@ if object_id(N'dbo.users_tables_create', N'P') is not null drop procedure dbo.us
|
||||
go
|
||||
create procedure dbo.users_tables_create as begin set nocount on
|
||||
|
||||
if object_id(N'dbo.Sessions', N'U') is null create table dbo.Sessions(
|
||||
id integer not null identity(1, 1),
|
||||
[procedure] integer not null,
|
||||
[user] integer not null,
|
||||
[ip] integer not null,
|
||||
date_last datetime not null constraint df_sessions_date_last default getdate(),
|
||||
date_in datetime not null constraint df_sessions_date_in default getdate(),
|
||||
date_out datetime,
|
||||
constraint pk_sessions primary key clustered(id),
|
||||
constraint fk_sessions_procedure foreign key([procedure]) references dbo.Procedures(id)
|
||||
on update no action
|
||||
on delete no action,
|
||||
constraint fk_sessions_user foreign key([user]) references dbo.Users(id)
|
||||
on update no action
|
||||
on delete no action,
|
||||
constraint fk_sessions_ip foreign key([ip]) references dbo.Ips(id)
|
||||
on update no action
|
||||
on delete no action
|
||||
)
|
||||
|
||||
if object_id(N'dbo.SessionsActived', N'U') is null create table dbo.SessionsActived(
|
||||
id integer not null,
|
||||
id integer not null identity(1, 1),
|
||||
[procedure] integer not null,
|
||||
[user] integer not null,
|
||||
[ip] integer not null,
|
||||
@ -53,6 +33,26 @@ create procedure dbo.users_tables_create as begin set nocount on
|
||||
on delete no action
|
||||
)
|
||||
|
||||
if object_id(N'dbo.Sessions', N'U') is null create table dbo.Sessions(
|
||||
id integer not null,
|
||||
[procedure] integer not null,
|
||||
[user] integer not null,
|
||||
[ip] integer not null,
|
||||
date_last datetime not null constraint df_sessions_date_last default getdate(),
|
||||
date_in datetime not null constraint df_sessions_date_in default getdate(),
|
||||
date_out datetime,
|
||||
constraint pk_sessions primary key clustered(id),
|
||||
constraint fk_sessions_procedure foreign key([procedure]) references dbo.Procedures(id)
|
||||
on update no action
|
||||
on delete no action,
|
||||
constraint fk_sessions_user foreign key([user]) references dbo.Users(id)
|
||||
on update no action
|
||||
on delete no action,
|
||||
constraint fk_sessions_ip foreign key([ip]) references dbo.Ips(id)
|
||||
on update no action
|
||||
on delete no action
|
||||
)
|
||||
|
||||
if object_id(N'dbo._Sessions', N'U') is null create table dbo._Sessions(
|
||||
id integer not null identity(1, 1),
|
||||
history_mode integer not null,
|
||||
@ -148,7 +148,7 @@ create trigger dbo.sessions_trigger on dbo.Sessions after insert, update, delete
|
||||
execute dbo.history_mode_get @insert output, @update output, @delete output, @unknown output
|
||||
|
||||
-- Update.
|
||||
insert into dbo._Sessions(history_mode, id, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
insert into dbo._Sessions(history_mode, entity, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
select @update, inserted.id, inserted.[procedure], inserted.[user], inserted.[ip], inserted.date_last, inserted.date_in, null
|
||||
from inserted inserted
|
||||
join deleted deleted on inserted.id = deleted.id
|
||||
@ -158,25 +158,25 @@ create trigger dbo.sessions_trigger on dbo.Sessions after insert, update, delete
|
||||
inserted.[ip] != deleted.[ip] or
|
||||
inserted.date_last != deleted.date_last or
|
||||
inserted.date_in != deleted.date_in or
|
||||
isnull(inserted.date_out, '0001-01-01') != isnull(deleted.date_out, '0001-01-01')
|
||||
isnull(inserted.date_out, '1753-01-01') != isnull(deleted.date_out, '1753-01-01')
|
||||
) and not (
|
||||
inserted.[procedure] = deleted.[procedure] and
|
||||
inserted.[user] = deleted.[user] and
|
||||
inserted.[ip] = deleted.[ip] and
|
||||
inserted.date_last != deleted.date_last and
|
||||
inserted.date_in = deleted.date_in and
|
||||
isnull(inserted.date_out, '0001-01-01') = isnull(deleted.date_out, '0001-01-01')
|
||||
isnull(inserted.date_out, '1753-01-01') = isnull(deleted.date_out, '1753-01-01')
|
||||
)
|
||||
|
||||
-- Insert.
|
||||
insert into dbo._Sessions(history_mode, id, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
insert into dbo._Sessions(history_mode, entity, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
select @insert, inserted.id, inserted.[procedure], inserted.[user], inserted.[ip], inserted.date_last, inserted.date_in, null
|
||||
from inserted inserted
|
||||
left join deleted deleted on inserted.id = deleted.id
|
||||
where deleted.id is null
|
||||
|
||||
-- Delete.
|
||||
insert into dbo._Sessions(history_mode, id, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
insert into dbo._Sessions(history_mode, entity, [procedure], [user], [ip], date_last, date_in, date_out)
|
||||
select @delete, deleted.id, deleted.[procedure], deleted.[user], deleted.[ip], deleted.date_last, deleted.date_in, getdate()
|
||||
from deleted deleted
|
||||
left join inserted inserted on deleted.id = inserted.id
|
||||
|
||||
@ -25,7 +25,7 @@ create procedure dbo.groups_tables_create as begin set nocount on
|
||||
[session] integer not null,
|
||||
[name] varchar(64) not null,
|
||||
[owner] bit not null constraint df_groups_owner default 0,
|
||||
[description] varchar(512) not null,
|
||||
[description] varchar(512),
|
||||
date_in datetime not null constraint df_groups_date_in default getdate(),
|
||||
date_out datetime,
|
||||
constraint pk_groups primary key clustered(id),
|
||||
@ -36,7 +36,7 @@ create procedure dbo.groups_tables_create as begin set nocount on
|
||||
on update no action
|
||||
on delete no action,
|
||||
constraint uq_groups_name unique([name]) with(fillfactor = 90),
|
||||
constraint ck_groups_name check([name] != '' and [name] not like '%[^a-zA-Z0-9_]%' and [name] not like '[^a-zA-Z_]%')
|
||||
constraint ck_groups_name check([name] != '' and [name] not like '%[^a-zA-Z0-9_:.]%')
|
||||
)
|
||||
|
||||
if object_id(N'dbo.GroupsUsers', N'U') is null create table dbo.GroupsUsers(
|
||||
@ -97,7 +97,7 @@ create procedure dbo.groups_tables_create as begin set nocount on
|
||||
[session] integer not null,
|
||||
[name] varchar(64) not null,
|
||||
[owner] bit not null constraint df__groups_owner default 0,
|
||||
[description] varchar(512) not null,
|
||||
[description] varchar(512),
|
||||
date_in datetime not null,
|
||||
date_out datetime,
|
||||
history_date datetime2 not null constraint df__groups_history_date default sysutcdatetime(),
|
||||
|
||||
@ -23,43 +23,47 @@ create procedure dbo.common_tables_fill as begin set nocount on
|
||||
if @machine is null begin
|
||||
|
||||
declare @group integer
|
||||
declare @user_to_do bit = 0
|
||||
declare @ip_to_do bit = 0
|
||||
|
||||
set @machine = 1
|
||||
|
||||
if @machine_user_id is null begin
|
||||
|
||||
insert into dbo.Users([procedure], [session], nick, [password], accessible) values
|
||||
(@procedure, @machine, @machine_user, hashbytes('SHA2_512', ''), 0)
|
||||
set @machine_user_id = scope_identity()
|
||||
set @user_to_do = 1
|
||||
end
|
||||
|
||||
if @machine_ip_id is null begin
|
||||
insert into dbo.Ips([procedure], [session], [address]) values
|
||||
(@procedure, @machine, @machine_ip)
|
||||
set @machine_ip_id = scope_identity()
|
||||
set @ip_to_do = 1
|
||||
end
|
||||
|
||||
set @machine = (select top 1 id from dbo.SessionsActived where [user] = @machine_user_id and [ip] = @machine_ip_id)
|
||||
|
||||
if @machine is null begin
|
||||
insert into dbo.SessionsActived([procedure], [user], [ip]) values
|
||||
(@procedure, @machine_user_id, @machine_ip_id)
|
||||
set @machine = scope_identity()
|
||||
end
|
||||
|
||||
if @user_to_do = 1 begin
|
||||
insert into dbo.Groups([procedure], [session], [name], owner) values
|
||||
(@procedure, @machine, @machine_user, 1)
|
||||
set @group = scope_identity()
|
||||
insert into dbo.GroupsUsers([procedure], [session], [group], [user]) values
|
||||
(@procedure, @machine, @group, @machine_user_id)
|
||||
|
||||
end
|
||||
|
||||
if @machine_ip_id is null begin
|
||||
|
||||
insert into dbo.Ips([procedure], [session], [address]) values
|
||||
(@procedure, @machine, @machine_ip)
|
||||
set @machine_ip_id = scope_identity()
|
||||
|
||||
if @ip_to_do = 1 begin
|
||||
insert into dbo.Groups([procedure], [session], [name], owner) values
|
||||
(@procedure, @machine, @machine_user, 1)
|
||||
(@procedure, @machine, @machine_ip, 1)
|
||||
set @group = scope_identity()
|
||||
insert into dbo.GroupsIps([procedure], [session], [group], [ip]) values
|
||||
(@procedure, @machine, @group, @machine_ip_id)
|
||||
|
||||
end
|
||||
|
||||
set @machine = (select top 1 id from dbo.Sessions where [user] = @machine_user_id and [ip] = @machine_ip_id and date_out is null)
|
||||
|
||||
if @machine is null begin
|
||||
insert into dbo.Sessions([procedure], [user], [ip]) values
|
||||
(@procedure, @machine_user_id, @machine_ip_id)
|
||||
set @machine = scope_identity()
|
||||
end
|
||||
|
||||
if (select top 1 0 from dbo.Users where id = @machine_user_id and [session] = @machine) is null begin
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
@echo off
|
||||
|
||||
set "directory=%cd%"
|
||||
set "directory=%~dp0"
|
||||
|
||||
cd %~dp0\..
|
||||
cd %directory%\..
|
||||
|
||||
call Tools\dockers.stop.bat
|
||||
docker images -q anp:sql-server | findstr "anp-sql-server">null || call Dockers\SQLServer\rebuild.bat
|
||||
docker images -q anp:sql-server | findstr "anp-sql-server">nul || call Dockers\SQLServer\rebuild.bat
|
||||
docker compose up -d
|
||||
|
||||
cd %directory%
|
||||
@ -1,12 +1,12 @@
|
||||
@echo off
|
||||
|
||||
set "current_path=%cd%"
|
||||
set "current_path=%~dp0"
|
||||
set "sql_server_host=127.0.0.1"
|
||||
set "sql_server_port=1433"
|
||||
set "sql_server_user=sa"
|
||||
set "sql_server_password="
|
||||
|
||||
cd %~dp0\..
|
||||
cd %current_path%\..
|
||||
|
||||
if exist Tools\sqlserver.secrets.cmd (
|
||||
call Tools\sqlserver.secrets.cmd
|
||||
@ -14,11 +14,9 @@ if exist Tools\sqlserver.secrets.cmd (
|
||||
|
||||
docker compose ps | findstr "anp-sql-server" >nul || call Tools\dockers.execute.bat
|
||||
|
||||
for /D %%d in (SQLServer\AnP.*) do (
|
||||
for %%f in (%%d\*.sql) do (
|
||||
echo %%f
|
||||
docker exec -i anp-sql-server /opt/mssql-tools18/bin/sqlcmd -S %sql_server_host%,%sql_server_port% -U %sql_server_user% -P %sql_server_password% -i < %%f
|
||||
)
|
||||
for %%f in (SQLServer\AnP.*.sql) do (
|
||||
echo %%f
|
||||
docker exec -i anp-sql-server /opt/mssql-tools18/bin/sqlcmd -S %sql_server_host%,%sql_server_port% -U %sql_server_user% -P %sql_server_password% -C < %%f
|
||||
)
|
||||
|
||||
cd %current_path%
|
||||
@ -4,9 +4,9 @@ services:
|
||||
image: anp:sql-server
|
||||
container_name: anp-sql-server
|
||||
volumes:
|
||||
- ./Dockers/SQLServer/data:/var/opt/mssql
|
||||
- ./Dockers/SQLServer/temporary:/temporary
|
||||
- ./Dockers/SQLServer/scripts:/scripts
|
||||
- anp_sql_server_data:/data:/var/opt/mssql
|
||||
- anp_sql_server_data:/temporary:/temporary
|
||||
- anp_sql_server_data:/scripts:/scripts
|
||||
environment:
|
||||
- MSSQL_SA_PASSWORD=Abc123..
|
||||
ports:
|
||||
@ -21,3 +21,6 @@ networks:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.20.212.0/24
|
||||
|
||||
volumes:
|
||||
anp_sql_server_data:
|
||||
Loading…
Reference in New Issue
Block a user