Automating Database Migrations With Containers and Git

Managing database migrations for multiple environments and teams can be challenging. This article describes how Git, database containers, and cloned databases, are combined for custom dev, test, and staging environments, each delivered in seconds.

While Git is often used with database containers, this approach introduces two new elements. Rather than restoring databases from backups, or building databases from source, identical secure production database environments are cloned and delivered in seconds. Database clones are writable, and easily incorporate data masking and synthetic test data. The second element is a script manifest file used in creation and application of personalized migration scripts.

A developer can work on a feature branch with a production database clone with feature scripts applied automatically. At the same time, testing can work on a release branch with an identical production database clone, with a set of release scripts applied. A pipeline stage can test a release branch rollback with a third identical secure production database clone, with upgrade and rollback scripts applied automatically.

This article focuses on SQL Server, but the same methods support Postgres and MySQL as well.

#database #docker containers #devops 2020 #database application development #git repositories

What is GEEK

Buddha Community

Automating Database Migrations With Containers and Git

Automating Database Migrations With Containers and Git

Managing database migrations for multiple environments and teams can be challenging. This article describes how Git, database containers, and cloned databases, are combined for custom dev, test, and staging environments, each delivered in seconds.

While Git is often used with database containers, this approach introduces two new elements. Rather than restoring databases from backups, or building databases from source, identical secure production database environments are cloned and delivered in seconds. Database clones are writable, and easily incorporate data masking and synthetic test data. The second element is a script manifest file used in creation and application of personalized migration scripts.

A developer can work on a feature branch with a production database clone with feature scripts applied automatically. At the same time, testing can work on a release branch with an identical production database clone, with a set of release scripts applied. A pipeline stage can test a release branch rollback with a third identical secure production database clone, with upgrade and rollback scripts applied automatically.

This article focuses on SQL Server, but the same methods support Postgres and MySQL as well.

#database #docker containers #devops 2020 #database application development #git repositories

Django-allauth: A simple Boilerplate to Setup Authentication

Django-Authentication 

A simple Boilerplate to Setup Authentication using Django-allauth, with a custom template for login and registration using django-crispy-forms.

Getting Started

Prerequisites

  • Python 3.8.6 or higher

Project setup

# clone the repo
$ git clone https://github.com/yezz123/Django-Authentication

# move to the project folder
$ cd Django-Authentication

Creating virtual environment

  • Create a virtual environment for this project:
# creating pipenv environment for python 3
$ virtualenv venv

# activating the pipenv environment
$ cd venv/bin #windows environment you activate from Scripts folder

# if you have multiple python 3 versions installed then
$ source ./activate

Configured Enviromment

Environment variables

SECRET_KEY = #random string
DEBUG = #True or False
ALLOWED_HOSTS = #localhost
DATABASE_NAME = #database name (You can just use the default if you want to use SQLite)
DATABASE_USER = #database user for postgres
DATABASE_PASSWORD = #database password for postgres
DATABASE_HOST = #database host for postgres
DATABASE_PORT = #database port for postgres
ACCOUNT_EMAIL_VERIFICATION = #mandatory or optional
EMAIL_BACKEND = #email backend
EMAIL_HOST = #email host
EMAIL_HOST_PASSWORD = #email host password
EMAIL_USE_TLS = # if your email use tls
EMAIL_PORT = #email port

change all the environment variables in the .env.sample and don't forget to rename it to .env.

Run the project

After Setup the environment, you can run the project using the Makefile provided in the project folder.

help:
 @echo "Targets:"
 @echo "    make install" #install requirements
 @echo "    make makemigrations" #prepare migrations
 @echo "    make migrations" #migrate database
 @echo "    make createsuperuser" #create superuser
 @echo "    make run_server" #run the server
 @echo "    make lint" #lint the code using black
 @echo "    make test" #run the tests using Pytest

Preconfigured Packages

Includes preconfigured packages to kick start Django-Authentication by just setting appropriate configuration.

PackageUsage
django-allauthIntegrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
django-crispy-formsdjango-crispy-forms provides you with a crispy filter and {% crispy %} tag that will let you control the rendering behavior of your Django forms in a very elegant and DRY way.

Contributing

  • Django-Authentication is a simple project, so you can contribute to it by just adding your code to the project to improve it.
  • If you have any questions, please feel free to open an issue or create a pull request.

Download Details:
Author: yezz123
Source Code: https://github.com/yezz123/Django-Authentication
License: MIT License

#django #python 

Adaline  Kulas

Adaline Kulas

1594166040

What are the benefits of cloud migration? Reasons you should migrate

The moving of applications, databases and other business elements from the local server to the cloud server called cloud migration. This article will deal with migration techniques, requirement and the benefits of cloud migration.

In simple terms, moving from local to the public cloud server is called cloud migration. Gartner says 17.5% revenue growth as promised in cloud migration and also has a forecast for 2022 as shown in the following image.

#cloud computing services #cloud migration #all #cloud #cloud migration strategy #enterprise cloud migration strategy #business benefits of cloud migration #key benefits of cloud migration #benefits of cloud migration #types of cloud migration

Grace  Lesch

Grace Lesch

1621440000

Migrating financial data to cloud with Database Migration Service

Choosing Database Migration Service

At first, we didn’t consider an auto-migrating solution because there wasn’t a lot of complexity in the migration, especially for our small databases. We’d just have to bring the application down, export the database, import it to Cloud SQL, and bring it back up. That worked for most of our applications.

But toward the end of the process, two applications remained.

Through conversations with our product team and our Google contact, we learned about the Google Cloud’s Database Migration Service (which was in private preview at the time), which provides a serverless migration experience from MySQL to Cloud SQL for MySQL with continuous data replication, at no additional cost.

#database #database service #migrate databases #migrating financial data

Madyson  Reilly

Madyson Reilly

1604109000

Best Practices for Using Git

Git has become ubiquitous as the preferred version control system (VCS) used by developers. Using Git adds immense value especially for engineering teams where several developers work together since it becomes critical to have a system of integrating everyone’s code reliably.

But with every powerful tool, especially one that involves collaboration with others, it is better to establish conventions to follow lest we shoot ourselves in the foot.

At DeepSource, we’ve put together some guiding principles for our own team that make working with a VCS like Git easier. Here are 5 simple rules you can follow:

1. Make Clean, Single-Purpose Commits

Oftentimes programmers working on something get sidetracked into doing too many things when working on one particular thing — like when you are trying to fix one particular bug and you spot another one, and you can’t resist the urge to fix that as well. And another one. Soon, it snowballs and you end up with so many changes all going together in one commit.

This is problematic, and it is better to keep commits as small and focused as possible for many reasons, including:

  • It makes it easier for other people in the team to look at your change, making code reviews more efficient.
  • If the commit has to be rolled back completely, it’s far easier to do so.
  • It’s straightforward to track these changes with your ticketing system.

Additionally, it helps you mentally parse changes you’ve made using git log.

#open source #git #git basics #git tools #git best practices #git tutorials #git commit