Armazenamento de dados e configuração de fontes de dados

O App de Gerenciamento do MagicTradeBot oferece suporte a vários bancos de dados baseados em SQL para armazenar e gerenciar dados essenciais relacionados ao trading. Essa flexibilidade permite que os usuários operem em ambientes que vão desde bancos de dados embarcados leves até bancos de dados relacionais robustos de nível empresarial.

📌 Quais Dados São Armazenados

O MagicTradeBot armazena os seguintes dados estruturados na fonte de dados conectada:

  • Contas de Exchange: Credenciais de acesso, chaves de API e configurações por exchange.
  • Símbolos de Trading: Moedas/pares associados a exchanges ou contas específicas.
  • Templates de Trading: Definições de estratégia personalizadas com controle de risco e vínculos a símbolos.
  • Dados de Trading: Logs e registros de execuções em tempo real e históricos.
  • Dados de Kline: Dados de velas internos e otimizados localmente, sem dependência de fornecedores externos.
  • Outros: Logs, configurações do sistema, agendamentos e outros metadados críticos de execução.

💾 Fontes de Dados Suportadas

O MagicTradeBot atualmente oferece suporte aos seguintes motores de banco de dados SQL:

  • SQLite – Leve e embutido (opção padrão)
  • SQL Server – Banco de dados relacional empresarial completo (Microsoft SQL)
  • MySQL – Banco de dados relacional de código aberto popular
  • PostgreSQL – Sistema de banco de dados relacional objeto-relacional avançado e de código aberto

⚙️ Configuração

Todas as conexões com banco de dados são definidas no arquivo appsettings.json do App de Gerenciamento:

{
  "ConnectionStrings": {
    "SQLLight": "Data Source=Data/MTManagementDB.db",
    "SQLSERVER": "Server=localhost;Database=MagicTrade;User Id=sa;Password=yourpass;",
    "Postge": "Server=localhost;Database=MagicTrade;User Id=pguser;Password=yourpass;",
    "MySQL": "Server=localhost;Database=MagicTrade;User=mtuser;Password=yourpass;"
  },

  "Secrets": {
    // AVISO: Nunca inclua credenciais reais no controle de versão!
    "Database": {
      "Host": "",        // Variável de ambiente: Secrets__Database__Host
      "Name": "",        // Variável de ambiente: Secrets__Database__Name
      "User": "",        // Variável de ambiente: Secrets__Database__User
      "Password": ""     // Variável de ambiente: Secrets__Database__Password
    }
  }
}

🔐 Boas Práticas de Segurança

  • Nunca inclua credenciais no appsettings.json em ambientes de produção.
  • Utilize variáveis de ambiente para fornecer segredos com segurança, por exemplo:
    • Secrets__Database__User
    • Secrets__Database__Password
  • Use um Gerenciador de Segredos ou Docker Secrets em ambientes com contêineres.
  • Criptografe o banco de dados em repouso sempre que possível.

🧪 Uso Padrão com SQLite (Recomendado para Desenvolvimento Local)

O MagicTradeBot já vem com o SQLite integrado e configurado. Nenhuma configuração manual é necessária para começar os testes locais.

"SQLLight": "Data Source=Data/MTManagementDB.db"

O banco de dados baseado em arquivo será criado automaticamente na pasta /Data.

🔧 Alterando para Bancos de Dados Externos

  1. Crie o banco de dados desejado no seu mecanismo SQL Server / MySQL / PostgreSQL.
  2. Atualize a string de conexão correspondente no appsettings.json.
  3. Certifique-se de que as portas necessárias estejam abertas e acessíveis.
  4. Reinicie o App de Gerenciamento.

🧩 Resumo

  • O MagicTradeBot armazena todos os dados de trading, configurações e logs em um banco de dados estruturado.
  • Suporta desde motores leves até bancos de dados empresariais.
  • Favorece implantações seguras e escaláveis usando variáveis de ambiente.
  • Facilidade para alternar entre bancos de dados apenas ajustando a configuração.

Para implantações avançadas, agendamento de backups e replicação do banco de dados também são suportados externamente dependendo do motor de banco de dados utilizado.

📎 Related Topics