Postgres + Remix: setup de rede no ambiente de dev
Passo a passo de ligar Postgres ao app Remix: comando de rede, imagem certa e armadilhas de browser/CLI no setup local. — guia prático
Resposta direta
Dev local quebra em rede e imagem errada antes de quebrar em SQL: acerte o setup Postgres↔Remix antes do feature work. Eu quero que você copie esse texto e paste-o em um arquivo modelos.product.json E o que isso está fazendo é criar um modelo de dados que nosso negócio diz que é isso que um produto deve parecer, não importa de onde ele.
O comando de rede que falta no tutorial
Então, por favor, copie o comando sob o setup de rede e use-o na linha de comando em código VS. Então, agora precisamos configurar o Postgres, mas não podemos usar apenas o imagem do normal Postgres porque precisamos do plugin Wall-to-JSON instalado para obter os registros do CDC. Então copie o texto nessa caixa e crie um novo arquivo no VSCode chamado postgres-sql.dockerfile.
Ok, encontre o próximo comando que vai nos construir a imagem do Docker. Sim, vamos sincar dados de produto e de preço para e de nosso account Stripe para este database. Eu só quero que você query a tabla de produtos e preços, só para mostrar que eles estão lá.
Por que a imagem 'normal' falha
E eu realmente selecionaria com o cursor, só para você estar correndo uma vez por vez. E arquivos Remix são realmente importantes porque eles expressam como o dado é transformado quando ele entra dos sistemas externos para se encaixar nos modelos de dados canônicos. Eu quero que você copie esse texto e paste-o em um arquivo modelos.product.json E o que isso está fazendo é criar um modelo de dados que nosso negócio diz que é isso que um produto deve parecer, não importa de onde ele vem.
Nós estamos conformando nosso modelo de dados com o modelo de dados de Stripe para fazer as nossas vidas fáceis. Scroll on prod db this is our database E eu não vou entrar muito aqui, mas vá em frente e crie um arquivo, systems.prodb.yaml. E o PushMixer é o que define como os dados são transformados dos modelos de dados canônicos para se encaixar no Postgres.
Na prática
Dev local quebra em rede e imagem errada antes de quebrar em SQL: acerte o setup Postgres↔Remix antes do feature work.
Safari vs Chrome no fluxo de setup
Comandos lá embaixo que vai tirar o reciente remix docker imagem e executá-lo localmente certo ok agora o que podemos fazer é oh esquecemos de trocar a chave do api para stripe então se descolamos para cima você pode ver o gateway de pagamento que precisamos para conseguir nossa chave do dashboard do stripe API key. E você pode ver agora que está reportado que a conexão do Postgres foi estabelecida e o call de API de teste de Stripe foi sucesso. Na verdade, abra Postgres novamente para mostrar que tudo está vazio e selecione a estrela de produtos.
Ok, volte ao dashboard de Stripe e crie um produto com um preço. Ok, às vezes leva um segundo para sincronizar, mas volte para o tool de query do Postgres e selecione a estrela de produtos. E vamos adicionar um preço novo, porque eu quero mostrar que agora podemos ter vários preços e várias criptomoedas para cada produto.
Checklist para o banco subir limpo
Então, volte ao dashboard de Stripe, clique no produto e adicione um novo preço em, eu não sei, euros ou algo assim. Então, como você pode ver, temos a ID do produto, que podemos usar para dizer, ei, este é o meu produto e este é o preço baseado no país que o meu usuário está me visitando. Então, se você é uma startup de AI e está vendendo em todo o mundo, isso seria um ótimo jeito para a sua aplicação web interna conseguir dados de preço dinâmico de Stripe.
Agora, essa é a situação ideal em que separamos nosso preço em tablas de produtos, mas não todos fizeram isso. Então, eu quero dar um exemplo em que temos apenas uma tabla de produtos com uma coluna de preço. Um ID Stripe, que é o texto que Stripe assina a cada produto, nome do produto e preço.
Próximo passo depois do hello query
Scroll on and there should be a couple of table alteration queries go ahead and run those two drop tables oh there it is right there and there's also a create table command for you yep and that would have been in the guide now we can scroll on in the guide yep there it is E agora precisamos mudar os modelos de dados, porque nosso negócio agora, neste exemplo, não tem modelos de dados de preço e produto separados. O .price.json file, porque esse negócio não tem o conceito de um preço como um objeto separado do produto. E para este, eu recomendo copiar apenas do Receive Mixer, para não ter que trocar a chave API.
E o que esses novos arquivos Remix vão fazer é que, qualquer vez que um preço ou um objeto de produto entra, vamos criar um objeto de produto. Quando criamos um produto no dashboard do Stripe com um preço. Ele nos envia um hook web de produto, provavelmente primeiro, mas não sempre, e depois um hook web de preço.
Sinais de que está funcionando
E o que precisamos fazer é tirar a ID do objeto de produto que eles nos enviaram, e o campo de produto do objeto de preço que eles nos enviaram, porque esses são os mesmos. Também precisamos do nome do produto, nada é renomado, e a quantidade de unidades precisa ser o preço. Então, o que vai acontecer, na verdade, é que Stripe vai nos enviar dois hooks web.
Eles vão nos enviar um objeto de preço e um objeto de produto. Na verdade, não importa qual é a primeira que fazemos, porque ambos têm a mesma única chave de ID de Stripe. Então, você pode CTRL-C na linha de comandos algumas vezes, e depois vamos ter que remover a imagem de novo.
O que evitar na primeira semana
Ok, e tudo conectado sucessivamente, você pode agora voltar ao dashboard do Stripe e adicionar alguns produtos. E se você ir para o nosso tool de enquadramento de database e selecionar a estrela de produtos, ele deve estar no topo. E o último comportamento que eu quero mostrar, se você voltar para o dashboard do produto em Stripe.
Apenas vá para o produto do Ben e crie um preço novo para ele. Você pode ver agora que qualquer vez que criamos um preço novo para um produto, ele vai então se atualizar em nosso database. Se você quiser ver e jogar, vá para sqlpipe.com.br e clique em produtos e clique em remix.
Na prática
Próximo passo para «postgres-remix-setup-rede-dev»: rode um experimento de 7 dias com uma métrica ligada a postgres remix setup rede desenvolvimento antes de escalar o padrão.
Perguntas frequentes
Se você atacar «Por que a imagem 'normal' falha» primeiro, o que muda em 48h?
E eu realmente selecionaria com o cursor, só para você estar correndo uma vez por vez. E arquivos Remix são realmente importantes porque eles expressam como o dado é transformado quando ele entra dos sistemas externos para se encaixar nos modelos de dados. Em «Por que a imagem 'normal' falha», trate como experimento com dono e prazo — não como lista de intenções.
Como amarrar «Safari vs Chrome no fluxo de setup» a uma métrica única?
Comece pelo mecanismo: Comandos lá embaixo que vai tirar o reciente remix docker imagem e executá-lo localmente certo ok agora o que podemos fazer é oh esquecemos de trocar a chave do api para stripe então se descolamos para cima você pode ver o gateway de pagamento que precisamos.
Qual erro de execução «Checklist para o banco subir limpo» tenta evitar?
Critério do material: Então, volte ao dashboard de Stripe, clique no produto e adicione um novo preço em, eu não sei, euros ou algo assim. Então, como você pode ver, temos a ID do produto, que podemos usar para dizer, ei, este é o meu produto e este é o preço baseado no país que o. Se precisar de segundo sinal: Agora, essa é a situação ideal em que separamos nosso preço em tablas de produtos, mas não todos fizeram isso. Então, eu quero dar um exemplo em que temos apenas uma tabla de.
Como explicar «Próximo passo depois do hello query» sem virar checklist motivacional?
O artigo aponta: Scroll on and there should be a couple of table alteration queries go ahead and run those two drop tables oh there it is right there and there's also a create table command for you yep and that would have been in the guide now we can scroll on in the guide yep. Ajuste ao contexto de `postgres-remix-setup-rede-dev` antes de escalar.