#!/bin/bash

# VPM (2024-01-21) note a chegada dos arquivos fcentro_papedins_depurado_fc.sql e script_fc.sql. Esses arquivos se referem à estrutura regimental da fundacentro, guardada na estrutura de árvore cujos nomes de tabelas começam com fc_. Essa estrutura também tem suas próprias stored procedures, sempre com o prefixo fc_, uma vez que nessas stored procedures há referências a tabelas que estavam na estrutura da fundacentro e que foram migradas para a estrutura do papedins. Essas stored procedures são chamadas no arquivo fcentro_papedins_depurado_fc.sql. O arquivo script_fc.sql é um script que cria a estrutura da fundacentro e que é chamado neste script, juntamente com o arquivo fcentro_papedins_depurado_fc.sql
# VPM (2024-05-10) IMPORTANTE: este código precisa rodar no MariaDB, por causa das características de update com select from. No MySQL, uma parte do código não funciona. Outro ponto importante é garantir que o popula_base_ror.php rode com a flag de verificação de foreign key levantada, por conta da dependência da tabela relations com entities. É importante observar a senha de identifica.php.cripto, porque popula_base_ror chama isso. Alguma coisa no servidor specchio faz o código rodar sem levantar a restrição de foreign key. Estranho.
log_de_erros="log_de_erros_cria_database.txt"
> "$log_de_erros"

debug="debug_cria_database.txt"

echo -e "\n\n\n\e[31;1m======================================================\n"> "$debug"
echo -e "Log dos erros resultantes da execução de cria_database.bash\n\n\e[0m">> "$debug"



#para manter a base de dados sempre atualizada é preciso abrir a página https://hpo3yjcd.specchio.info/dev_vitor/papedins/src/html_arvore/, colocar a senha e entrar no sistema. A partir daí é preciso apertar o botão "grava_backup_sql\e[0m". Um arquivo script_SQL_data.sql será criado no diretório php_arvore. Esse arquivo deve ser copiado para o diretorio sql com o nome de script_SQL_padrao.sql. Além disso, é preciso carregar a página https://hpo3yjcd.specchio.info/dev_vitor/papedins/src/html/ppapdi.php. Ao carregar a página um arquivo script_recuperacao_data.sql será criado no diretorio html. Esse arquivo deve ser copiado em cima de script_recuperacao_padrao.sql no diretorio sql.


echo -e "\n\e[33;1mcriando a base de dados papedins_db\e[0m";
echo -e "\n\e[33;1mguardando as evidências, endereços, identificadores e autores para uso no final do script\e[0m";

#!/bin/bash

./guarda_evidencias.bash > script_recupera_dados_corriqueiros.sql 2>> "$log_de_erros" # cria o arquivo em sql para recuperar os dados corriqueiros de evidencias. Se vc não precisa destes dados, comente esta linha, mas lembre-se de comentar também a linha que chama faz o dump do script_recupera_dados_corriqueiros.sql no final deste arquivo. importante guardar o script_dados_corriqueiros.sql para recuperar os dados corriqueiros de evidencias se precisar mais tarde.
if [ $? -ne 0 ]; then
  echo -e " / O guarda_evidencias.bash retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


# Localização e nome do arquivo original
arquivo_original="script_recupera_dados_corriqueiros.sql"

# Diretório de backup
dir_backup="backup_dados_corriqueiros"

# Criar diretório de backup se não existir
mkdir -p "$dir_backup"

# Nome do arquivo de backup (com data e hora)
data_hora=$(date +"%Y%m%d-%H%M%S")
nome_backup="$(basename "$arquivo_original")-$data_hora"

# Fazendo o backup
cp "$arquivo_original" "$dir_backup/$nome_backup"

# Manter apenas os 10 backups mais recentes
# Navegar para o diretório de backup
cd "$dir_backup"
# Excluir arquivos exceto os 10 mais recentes
ls -t | grep "$(basename "$arquivo_original")" | tail -n +11 | xargs -I {} rm -f {}

cd ..


# apaga as tabelas que foram salvas acima.
echo -e "\n\e[31;1mapagando as tabelas que foram salvas acima";
mysql -u root -ptoninho13 papedins_db -N -e 'DROP TABLE IF EXISTS enderecos_evidencias;'
mysql -u root -ptoninho13 papedins_db -N -e 'DROP TABLE IF EXISTS enderecos_do_OSM;'
mysql -u root -ptoninho13 papedins_db -N -e 'DROP TABLE IF EXISTS evidencias_tipos_de_identificadores;'
mysql -u root -ptoninho13 papedins_db -N -e 'DROP TABLE IF EXISTS autores_evidencias;'
mysql -u root -ptoninho13 papedins_db -N -e 'DROP TABLE IF EXISTS evidencias;'


echo -e "\n\e[31;1mexecutando a papedins.sql\e[0m";
cat papedins.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat papedins.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat papedins.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < papedins.sql > /dev/null 2>> "$log_de_erros" #Papedins é um arquivo produzido manualmente e náo é gerado pelo sistema.
if [ $? -ne 0 ]; then
  echo -e " / O papedins.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a cria_journal2.sql\e[0m";
cat cria_journal2.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat cria_journal2.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat cria_journal2.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < cria_journal2.sql > /dev/null 2>> "$log_de_erros" #Muito longo e nao precisa fazer todas as vezes. Talvez tenha um script de criação dele, mas é stand-alone, não relacionado com os dados adicionados pelos usuários através da interface. 
if [ $? -ne 0 ]; then
  echo -e " / O cria_journal2.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a paises.sql\e[0m";
cat paises.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat paises.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat paises.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < paises.sql > /dev/null 2>> "$log_de_erros" #Não precisa mudar. Já tem todos os países do mundo. Atenção que este script cria procedures que fazem referência a Journals, por isso tem que ser executado depois de criar a tabela Journals. Mas, por outro lado, a tabela journals é criada inicialmente sem foreign key, para que possa ser criada a tabela paises. Depois de criar a tabela paises, é preciso criar a foreign key na tabela journals, o que é feito no script paises.sql com um alter table.
if [ $? -ne 0 ]; then
  echo -e " / O paises.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a arvore_sintatica.sql\e[0m";
cat arvore_sintatica.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat arvore_sintatica.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat arvore_sintatica.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < arvore_sintatica.sql > /dev/null 2>> "$log_de_erros" #Árvore sintática é um arquivo produzido manualmente e náo é gerado pelo sistema.
if [ $? -ne 0 ]; then
  echo -e " / O arvore_sintatica.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a insert_tokens.sql\e[0m";
cat insert_tokens.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat insert_tokens.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat insert_tokens.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < insert_tokens.sql > /dev/null 2>> "$log_de_erros" #insert_tokens é um arquivo produzido manualmente e náo é gerado pelo sistema.
if [ $? -ne 0 ]; then
  echo -e " / O insert_tokens.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a inicial.sql\e[0m";
cat inicial.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat inicial.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat inicial.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < inicial.sql > /dev/null 2>> "$log_de_erros" #inicial.sql é um arquivo produzido manualmente e náo é gerado pelo sistema. No entanto, ele é um extrato de outro arquivo que é gerado pelo sistema, mas sem as stored procedures. Penso que se houver mudanças na estrutura dos indicadores, talvez seja necessário atualizar este arquivo a partir do botão "grava_backup_sql" do sistema de estrutura dos indicadores. Precisa estudar a relação entre este arquivo e o script_SQL_padrão.sql.
if [ $? -ne 0 ]; then
  echo -e " / O inicial.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a script_SQL_padrao.sql\e[0m";
cat script_SQL_padrao.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_SQL_padrao.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_SQL_padrao.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_SQL_padrao.sql > /dev/null 2>> "$log_de_erros" #Comentário: a origem desse arquivo é script_SQL_AAAA_MM_DD_HH_MM_38.sql, que deve ser copiado manualmente do diretório php_arvore para o diretório sql. O arquivo é gerado por html_arvore/index.php quando o botão "grava_backup_sql" é apertado. 
# se houver alteracao tem que copiar do diretorio php_arvore o arquivo script_SQL_data.sql para o diretorio sql onde o "data" é a data do arquivo que foi gerado pelo sistema e não dados em latim	

if [ $? -ne 0 ]; then
  echo -e " / O script_SQL_padrao.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi



echo -e "\n\e[31;1mexecutando a script_recuperacao_padrao.sql\e[0m";
cat script_recuperacao_padrao.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_recuperacao_padrao.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_recuperacao_padrao.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_recuperacao_padrao.sql > /dev/null 2>> "$log_de_erros"  #Se tiver alteracao tem que copiar do diretorio html o arquivo script_recuperacao_ tal... para o diretorio sql
if [ $? -ne 0 ]; then
  echo -e " / O script_recuperacao_padrao.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

mysql -u root -ptoninho13 papedins_db -N -e 'select "tabela instituicoes", count(*) from instituicoes;'

echo -e "\n\e[31;1mexecutando a publicacoes.sql\e[0m";
cat publicacoes.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat publicacoes.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat publicacoes.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < publicacoes.sql > /dev/null 2>> "$log_de_erros" #publicacoes.sql é gerado manualmente.
if [ $? -ne 0 ]; then
  echo -e " / O publicacoes.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\nse você receber um erro de table 'enderecos_evidencias não existe', o problema é que não tem nenhuma evidencia gravada na tabela evidencias. Basta gravar alguma evidencia através do aplicativo e o erro sumirá.\n\n"


echo -e "\n\e[31;1mexecutando a script_tipos_veidencias.sql\e[0m";
cat script_tipos_veidencias.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_tipos_veidencias.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_tipos_veidencias.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_tipos_veidencias.sql > /dev/null 2>> "$log_de_erros" #Se houver alteração na base tem que copiar do diretorio html o arquivo script_tipos_veidencias.sql para o diretorio sql. Essa cópia só é válida depois de abrir a página respectiva é a arvore_de_tokens.sql. Você pode fazer alterações neste arquivo e elas continuarão válidas. Mas se você usar a interface da arvore_de_tokens, as alterações na interface serão perdidas caso você não faça a cópia do arquivo script_tipos_veidencias.sql para o diretório sql.
if [ $? -ne 0 ]; then
  echo -e " / O script_tipos_veidencias.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a script_update_grupo_padrao.sql\e[0m";
cat script_update_grupo_padrao.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_update_grupo_padrao.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_update_grupo_padrao.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_update_grupo_padrao.sql > /dev/null 2>> "$log_de_erros" #Se houver alteracao tem que copiar do diretorio html o arquivo script_update_grupo.sql para o diretorio sql
if [ $? -ne 0 ]; then
  echo -e " / O script_update_grupo_padrao.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a complementos_journals.sql\e[0m";
cat complementos_journals.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat complementos_journals.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat complementos_journals.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < complementos_journals.sql > /dev/null 2>> "$log_de_erros" #É um arquivo stand-alone que contém journals adicionais. Pelo que entendo é criado manualmente.
if [ $? -ne 0 ]; then
  echo -e " / O complementos_journals.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a script_cria_n_to_n_grupos_tokens.sql\e[0m";
cat script_cria_n_to_n_grupos_tokens.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_cria_n_to_n_grupos_tokens.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_cria_n_to_n_grupos_tokens.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_cria_n_to_n_grupos_tokens.sql > "$debug" 2>> "$log_de_erros" #A informação a seguir constava no arquivo cria_database.bash -> Se houver alteração na base de dados tem que copiar do diretorio html o arquivo script_cria_n_to_n_grupos_tokens.sql para o diretorio sql, no entanto, eu nao acho que essa informação esteja correta, porque nao achei qualquer evidencia de que esse arquivo seja criado automaticamente
if [ $? -ne 0 ]; then
  echo -e " / O script_cria_n_to_n_grupos_tokens.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


./cria_tabela_grupo_duplo.bash # cria o vinculo entre evidencias e veiculos com grupos_de_tokens. Este script vai criar cria_tabela_grupo_duplo.sql que é introduzido na base de dados papedisns_db dentro do próprio script cria_tabela_grupo_duplo.bash.

echo -e "\n\e[31;1mexecutando a script_update_valido.sql\e[0m";
cat script_update_valido.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_update_valido.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_update_valido.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_update_valido.sql > /dev/null 2>> "$log_de_erros"  #Se houver alteração tem que copiar do diretorio html o arquivo script_update_valido.sql para o diretorio sql. Este script é gerado pelo script PHP updateValido.php, que está no diretório papedins/src/html e é chamado pelo código papedins/src/html/mostra_grupos_de_tokens_duplas_identificadores.php, ou seja, pela janela Duplokident.  
if [ $? -ne 0 ]; then
  echo -e " / O script_update_valido.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a enderecos.sql\e[0m";
cat enderecos.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat enderecos.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat enderecos.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < enderecos.sql > /dev/null 2>> "$log_de_erros" #Para guardar enderecos do OpenStreetMaps. Esse arquivo é gerado automaticamente pelo sistema e precisa verificar se o sistema de recuperação de dados está funcionando.
if [ $? -ne 0 ]; then
  echo -e " / O enderecos.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a paises_iso3166_2.sql\e[0m";
cat paises_iso3166_2.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat paises_iso3166_2.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat paises_iso3166_2.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < paises_iso3166_2.sql > /dev/null 2>> "$log_de_erros"  #Para guardar os códigos de paises e linkar a tabela paises com a tabela da iso3166_2
if [ $? -ne 0 ]; then
  echo -e " / O paises_iso3166_2.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a estados.sql\e[0m";
cat estados.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat estados.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat estados.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < estados.sql > /dev/null 2>> "$log_de_erros" #Para guardar os estados dos paises e linkar a tabela paises com a tabela da iso3166_2
if [ $? -ne 0 ]; then
  echo -e " / O estados.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi



echo -e "\n\e[31;1mexecutando a cria_municipios.sql\e[0m";
cat cria_municipios.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat cria_municipios.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat cria_municipios.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < cria_municipios.sql > /dev/null 2>> "$log_de_erros" #Para guardar os municipios dos paises e linkar a tabela paises com a tabela da iso3166_2
if [ $? -ne 0 ]; then
  echo -e " / O cria_municipios.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

#echo -e "\n\e[31;1mexecutando a popula_base_ror.php (DEMORA BASTANTE)\e[0m";
#php popula_base_ror.php > /dev/null 2>> "$log_de_erros" # precisa do arquivo json anexado....

echo -e "\n\n\e[31;1mDeseja executar popula_base_ror.php (DEMORA BASTANTE)? (s/n)\e[0m"
read -t 10 -p "Responda em 10 segundos: " resposta

#resposta = "s"

# Verificar a resposta
if [ "$resposta" = "s" ]; then
	#cria a base dados de entidades
	echo -e "\n\e[31;1mexecutando a cria_base_ror.sql\e[0m";
	cat cria_base_ror.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
	cat cria_base_ror.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
	cat cria_base_ror.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
	echo "mysql -u root -ptoninho13 papedins_db < cria_base_ror.sql > /dev/null 2>> $log_de_erros";
	mysql -u root -ptoninho13 papedins_db < cria_base_ror.sql > /dev/null 2>> "$log_de_erros"  #Todas as instituiçòes de pesquisa do mundo
	if [ $? -ne 0 ]; then
	  echo -e " / O cria_base_ror.sql retornou um erro.\n\n" >> "$log_de_erros"
	else
	  echo "O comando anterior foi executado com sucesso."
	fi

    echo -e "\n\e[31;1mexecutando popula_base_ror.php (DEMORA BASTANTE)\e[0m"
    php popula_base_ror.php > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O popula_base_ror.php retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi
else
    if [ -z "$resposta" ]; then
        echo "Tempo esgotado. O comando não foi executado."
    else
        echo "Comando não executado por escolha do usuário."
    fi
	# Verifica se a tabela entities existe na base de dados papedins_db
	if mysql -u root -ptoninho13 -e "USE papedins_db; DESCRIBE entities;" > /dev/null 2>&1; then
	  echo "A tabela entities já existe na base de dados."
	else
	  echo "A tabela entities não existe na base de dados. Criando..."
	  
	  # Executa os comandos para criar a base de dados e tabela
	  echo -e "\n\e[31;1mexecutando a cria_base_ror.sql\e[0m";
	  cat cria_base_ror.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
	  cat cria_base_ror.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
	  cat cria_base_ror.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
	  mysql -u root -ptoninho13 papedins_db < cria_base_ror.sql > /dev/null 2>> "$log_de_erros"  
	  if [ $? -ne 0 ]; then
	    echo -e " / O cria_base_ror.sql retornou um erro.\n\n" >> "$log_de_erros"
	  else
	    echo "O comando anterior foi executado com sucesso."
	  fi
	fi

fi

echo -e "\n\e[31;1mexecutando a script_vinculos.sql\e[0m";
cat script_vinculos.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_vinculos.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_vinculos.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_vinculos.sql > /dev/null 2>> "$log_de_erros" #script_vinculos.sql é um arquivo produzido manualmente e náo é gerado pelo sistema, pelo menos até 20240219. Serve para atribuir os vínculos profissionais da tabela pessoas com a tabela entities, criar os tipos de bolsas, os tipos de projetos, os projetos,  os tipos de vinculos profissionais e os vínculos das pessoas aos projetos.
if [ $? -ne 0 ]; then
  echo -e " / O script_vinculos.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


echo -e "\n\e[31;1mexecutando a script_recupera_dados_corriqueiros.sql que foi gerado no começo deste script\e[0m";
cat script_recupera_dados_corriqueiros.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_recupera_dados_corriqueiros.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_recupera_dados_corriqueiros.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_recupera_dados_corriqueiros.sql #Este arquivo foi criado no começo deste cria_database.bash (este aqui), quando as tabelas respectivas também foram apagadas com o script guarda_evidencias.bash
if [ $? -ne 0 ]; then
  echo -e " / O script_recupera_dados_corriqueiros.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a fcentro_papedins_depurado_fc.sql\e[0m";
cat fcentro_papedins_depurado_fc.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat fcentro_papedins_depurado_fc.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat fcentro_papedins_depurado_fc.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < fcentro_papedins_depurado_fc.sql > /dev/null 2>> "$log_de_erros"  #Coloca estrutura da fundacentro na base, mas não a instância que é alterada pelo usuário, portanto, na minha visão não precisa ser atualizado quando a base de dados sobre alterações.. 
if [ $? -ne 0 ]; then
  echo -e " / O fcentro_papedins_depurado_fc.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando script_fc.sql\e[0m";
cat script_fc.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat script_fc.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat script_fc.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < script_fc.sql > /dev/null 2>> "$log_de_erros"  #Precisa ser atualizado quando a base de dados sobre alterações. Tem que copiar o script que é gerado pelo sistema para o diretório sql.
if [ $? -ne 0 ]; then
  echo -e " / O script_fc.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a tab_inscricoes_reduzido.sql\e[0m";
cat tab_inscricoes_reduzido.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat tab_inscricoes_reduzido.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat tab_inscricoes_reduzido.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < tab_inscricoes_reduzido.sql 
if [ $? -ne 0 ]; then
  echo -e " / O tab_inscricoes_reduzido.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a cria_sistema_cripto.sql\e[0m";
cat cria_sistema_cripto.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat cria_sistema_cripto.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat cria_sistema_cripto.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < cria_sistema_cripto.sql 
if [ $? -ne 0 ]; then
  echo -e " / O cria_sistema_cripto.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

echo -e "\n\e[31;1mexecutando a cria_logs_sistema.sql\e[0m";
cat cria_logs_sistema.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat cria_logs_sistema.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat cria_logs_sistema.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < cria_logs_sistema.sql 
if [ $? -ne 0 ]; then
  echo -e " / O cria_logs_sistema.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi

if [ -s "$log_de_erros" ]; then
  echo -e "\n\nErros encontrados durante a execução:"
  echo -e "\n\n\n\e[31;1m======================================================\n">> "$log_de_erros"
  echo -e "Log dos erros resultantes da execução de cria_database.bash\n\n\e[0m">> "$log_de_erros"
  cat "$log_de_erros"
else
  echo "Nenhum erro encontrado durante a execução."
fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_otimizadas.txt\e[0m"
    php insere_tokens_solidarios5.php frases_otimizadas.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_otimizadas.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_revistas_2024_05_13.txt\e[0m"
    php insere_tokens_solidarios5.php frases_revistas_2024_05_13.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_revistas_2024_05_13.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_substantivos_plurais.txt\e[0m"
    php insere_tokens_solidarios5.php frases_substantivos_plurais.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_substantivos_plurais.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_substantivos_singulares.txt\e[0m"
    php insere_tokens_solidarios5.php frases_substantivos_singulares.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_substantivos_singulares.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_SST_contabilidade.txt\e[0m"
    php insere_tokens_solidarios5.php frases_SST_contabilidade.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_SST_contabilidade.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_educacao_popular.txt\e[0m"
    php insere_tokens_solidarios5.php frases_educacao_popular.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_educacao_popular.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando insere_tokens_solidarios5.php frases_formacao_tecnica.txt\e[0m"
    php insere_tokens_solidarios5.php frases_formacao_tecnica.txt > /dev/null 2>> "$log_de_erros"
    if [ $? -ne 0 ]; then
      echo -e " / O insere_tokens_solidarios5.php frases_formacao_tecnica.txt retornou um erro.\n\n" >> "$log_de_erros"
    else
      echo "O comando anterior foi executado com sucesso."
    fi

echo -e "\n\e[31;1mexecutando a insert_token_verbo_no_infinitivo.sql\e[0m";
cat insert_token_verbo_no_infinitivo.sql | grep -i -o "CREATE TABLE [^ ]*" | sort | uniq
cat insert_token_verbo_no_infinitivo.sql | grep -i -o "INSERT INTO [^ ]*" | sort | uniq
cat insert_token_verbo_no_infinitivo.sql | grep -i -o "UPDATE [^ ]*" | sort | uniq
mysql -u root -ptoninho13 papedins_db < insert_token_verbo_no_infinitivo.sql > /dev/null 2>> "$log_de_erros" #Para guardar os estados dos paises e linkar a tabela paises com a tabela da iso3166_2
if [ $? -ne 0 ]; then
  echo -e " / O insert_token_verbo_no_infinitivo.sql retornou um erro.\n\n" >> "$log_de_erros"
else
  echo "O comando anterior foi executado com sucesso."
fi


